From 4c1d6182381e8e0a883c7efc9b3d002f186224d5 Mon Sep 17 00:00:00 2001 From: FIREdog5 <31233369+FIREdog5@users.noreply.github.com> Date: Wed, 11 Sep 2019 21:59:08 -0700 Subject: [PATCH] moving in the code from final comp to main (#698) * Check in Y11 Shepherd * Revert changes * Moved dpad staffbot code; using git LFS * Minor shepherd fixes * Fixed some lint issues --- .gitattributes | 5 + .gitignore | 5 +- .travis.yml | 3 +- .../frankfurter/scripts/update/install_update | 4 + ansible-protos/fieldcontrol.proto | 31 - dawn/Makefile | 2 +- dawn/package.json | 2 +- dawn/yarn.lock | 1092 ++++++++++++++++- runtime/Makefile | 2 +- runtime/Pipfile | 1 + runtime/Pipfile.lock | 43 +- runtime/ansible.py | 103 +- runtime/disable_CPUs.sh | 8 - runtime/enable_CPUs.sh | 8 - runtime/fetchartifacts | 3 - runtime/fieldcontrol_pb2.py | 214 ---- runtime/runtime.py | 84 +- runtime/runtimeUtil.py | 2 +- runtime/statemanager.py | 6 +- runtime/studentCode.py | 533 ++++---- runtime/studentapi.py | 41 +- shepherd/.gitattributes | 1 + shepherd/Alliance.py | 19 +- shepherd/Code.py | 154 ++- shepherd/DummyRuntime_client_manager.py | 46 + shepherd/DummyScoreboard.py | 9 + shepherd/DummySensors.py | 111 ++ shepherd/DummyShepherd.py | 18 + shepherd/DummyShepherdReceiver.py | 52 + shepherd/Log.py | 36 + shepherd/Pipfile | 3 + shepherd/Pipfile.lock | 147 ++- shepherd/Sensors.py | 70 +- shepherd/Shepherd.py | 590 ++++++--- shepherd/Timer.py | 7 +- shepherd/Utils.py | 118 +- shepherd/audio.py | 18 + shepherd/bot.py | 47 + shepherd/buttons/buttons_blue.ino | 45 + shepherd/buttons/buttons_gold.ino | 45 + shepherd/dawn_server.py | 29 +- shepherd/installlcm | 5 + shepherd/perks_server.py | 71 ++ shepherd/runtimeclient.py | 115 ++ shepherd/scoreboard_server.py | 28 +- shepherd/server.py | 9 +- shepherd/static/AIRHORNMLG.wav | 3 + shepherd/static/Bar.png | Bin 0 -> 150 bytes shepherd/static/Blank.png | Bin 0 -> 1413 bytes shepherd/static/Blank300x100.png | Bin 0 -> 367 bytes shepherd/static/BlueLeft.png | Bin 0 -> 643 bytes shepherd/static/BlueRight.png | Bin 0 -> 644 bytes shepherd/static/BlueTwisted.png | Bin 0 -> 48857 bytes shepherd/static/BlueTwisted.xcf | 3 + shepherd/static/BlueUp.png | Bin 0 -> 653 bytes shepherd/static/Filling Circle.jpg | Bin 0 -> 33878 bytes shepherd/static/GoldTwisted.png | Bin 0 -> 48008 bytes shepherd/static/GoldTwisted.xcf | 3 + .../DummyPerks/artificial_sweetener.png | Bin 0 -> 2883 bytes .../assets/DummyPerks/bubblegum.png | Bin 0 -> 8026 bytes .../chocolate_covered_espresso_beans.png | Bin 0 -> 6025 bytes .../PerkSelection/assets/DummyPerks/diet.png | Bin 0 -> 8022 bytes .../assets/DummyPerks/jawbreaker.png | Bin 0 -> 3653 bytes .../assets/DummyPerks/minty_fresh_start.png | Bin 0 -> 2431 bytes .../DummyPerks/raspberry_cotton_candy.png | Bin 0 -> 3937 bytes .../assets/DummyPerks/sour_gummy_worms.png | Bin 0 -> 9051 bytes .../assets/DummyPerks/sweet_spot.png | Bin 0 -> 5948 bytes .../PerkSelection/assets/DummyPerks/taffy.png | Bin 0 -> 9077 bytes .../assets/icons/BlueTwisted.png | Bin 0 -> 48857 bytes shepherd/static/PerkSelection/css/perksUI.css | 103 ++ shepherd/static/PerkSelection/css/submit.css | 48 + shepherd/static/PerkSelection/js/perksUI.js | 228 ++++ shepherd/static/PerkSelection/perksUI.html | 94 ++ shepherd/static/PerkSelection/reset.html | 6 + shepherd/static/PerkSelection/submit.html | 11 + shepherd/static/Perk_1.png | Bin 0 -> 705 bytes shepherd/static/Perk_2.png | Bin 0 -> 817 bytes shepherd/static/Perk_3.png | Bin 0 -> 868 bytes shepherd/static/Spoiled_Candies.png | Bin 0 -> 3105 bytes shepherd/static/Spoiled_Candies.xcf | 3 + shepherd/static/Twisted.png | Bin 0 -> 18069 bytes shepherd/static/Twisted.xcf | 3 + shepherd/static/Untitled.pdn | Bin 0 -> 79395 bytes shepherd/static/bootstrap.min.css | 7 +- shepherd/static/icons copy.ai | 3 + shepherd/static/jquery.min.js | 4 + shepherd/static/scoreboard.css | 57 + shepherd/static/scoreboard.html | 229 ++++ shepherd/static/scoreboard.js | 472 +++++++ shepherd/static/tempName.js | 28 + shepherd/templates/RFID_control.html | 161 +++ shepherd/templates/Scoreboard.html | 257 ++++ shepherd/templates/perksUI.html | 96 ++ shepherd/templates/reset.html | 10 + shepherd/templates/score_adjustment.html | 162 +++ shepherd/templates/staff_gui.html | 381 ++++++ shepherd/templates/stage_control.html | 384 ++++++ shepherd/templates/submit.html | 15 + .../dpad_controls-gpio_auto-motorpath.py | 361 ++++++ 99 files changed, 6229 insertions(+), 888 deletions(-) delete mode 100644 ansible-protos/fieldcontrol.proto delete mode 100755 runtime/disable_CPUs.sh delete mode 100755 runtime/enable_CPUs.sh delete mode 100644 runtime/fetchartifacts delete mode 100644 runtime/fieldcontrol_pb2.py create mode 100644 shepherd/.gitattributes create mode 100644 shepherd/DummyRuntime_client_manager.py create mode 100755 shepherd/DummyScoreboard.py create mode 100755 shepherd/DummySensors.py create mode 100755 shepherd/DummyShepherd.py create mode 100755 shepherd/DummyShepherdReceiver.py create mode 100644 shepherd/Log.py create mode 100644 shepherd/audio.py create mode 100644 shepherd/bot.py create mode 100644 shepherd/buttons/buttons_blue.ino create mode 100644 shepherd/buttons/buttons_gold.ino create mode 100644 shepherd/perks_server.py create mode 100644 shepherd/runtimeclient.py create mode 100644 shepherd/static/AIRHORNMLG.wav create mode 100644 shepherd/static/Bar.png create mode 100644 shepherd/static/Blank.png create mode 100644 shepherd/static/Blank300x100.png create mode 100644 shepherd/static/BlueLeft.png create mode 100644 shepherd/static/BlueRight.png create mode 100644 shepherd/static/BlueTwisted.png create mode 100644 shepherd/static/BlueTwisted.xcf create mode 100644 shepherd/static/BlueUp.png create mode 100644 shepherd/static/Filling Circle.jpg create mode 100644 shepherd/static/GoldTwisted.png create mode 100644 shepherd/static/GoldTwisted.xcf create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/artificial_sweetener.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/bubblegum.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/chocolate_covered_espresso_beans.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/diet.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/jawbreaker.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/minty_fresh_start.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/raspberry_cotton_candy.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/sour_gummy_worms.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/sweet_spot.png create mode 100644 shepherd/static/PerkSelection/assets/DummyPerks/taffy.png create mode 100644 shepherd/static/PerkSelection/assets/icons/BlueTwisted.png create mode 100644 shepherd/static/PerkSelection/css/perksUI.css create mode 100644 shepherd/static/PerkSelection/css/submit.css create mode 100644 shepherd/static/PerkSelection/js/perksUI.js create mode 100644 shepherd/static/PerkSelection/perksUI.html create mode 100644 shepherd/static/PerkSelection/reset.html create mode 100644 shepherd/static/PerkSelection/submit.html create mode 100644 shepherd/static/Perk_1.png create mode 100644 shepherd/static/Perk_2.png create mode 100644 shepherd/static/Perk_3.png create mode 100644 shepherd/static/Spoiled_Candies.png create mode 100644 shepherd/static/Spoiled_Candies.xcf create mode 100644 shepherd/static/Twisted.png create mode 100644 shepherd/static/Twisted.xcf create mode 100644 shepherd/static/Untitled.pdn create mode 100644 shepherd/static/icons copy.ai create mode 100644 shepherd/static/jquery.min.js create mode 100644 shepherd/static/scoreboard.css create mode 100644 shepherd/static/scoreboard.html create mode 100644 shepherd/static/scoreboard.js create mode 100644 shepherd/static/tempName.js create mode 100644 shepherd/templates/RFID_control.html create mode 100644 shepherd/templates/Scoreboard.html create mode 100644 shepherd/templates/perksUI.html create mode 100644 shepherd/templates/reset.html create mode 100644 shepherd/templates/score_adjustment.html create mode 100644 shepherd/templates/staff_gui.html create mode 100644 shepherd/templates/stage_control.html create mode 100644 shepherd/templates/submit.html create mode 100644 staff-bots/dpad_controls-gpio_auto-motorpath.py diff --git a/.gitattributes b/.gitattributes index aaa1112c..973bc3ce 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,8 @@ dawn/static/website-robot-api-master/assets/fonts/* linguist-vendored hibike/Arduino-Makefile/* linguist-vendored hibike/lib/* linguist-vendored hibike/lib/hibike/* linguist-vendored=false +shepherd/static/Spoiled_Candies.xcf filter=lfs diff=lfs merge=lfs -text +shepherd/static/Twisted.xcf filter=lfs diff=lfs merge=lfs -text +shepherd/static/BlueTwisted.xcf filter=lfs diff=lfs merge=lfs -text +shepherd/static/GoldTwisted.xcf filter=lfs diff=lfs merge=lfs -text +shepherd/static/icons[[:space:]]copy.ai filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 2c3fff95..fa5a38b7 100644 --- a/.gitignore +++ b/.gitignore @@ -397,9 +397,8 @@ hibike/virtual_devices.txt # Webstorm project settings .idea -# Visual Studio Code config -.vscode - +# Visual Studio Code settings +.vscode/ ### Custom /dawn-* diff --git a/.travis.yml b/.travis.yml index 6ee8c139..34e74a7e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,12 +17,13 @@ matrix: env: TEST_DIR=runtime - name: Shepherd language: python - python: 3.6 + python: 3.7 env: TEST_DIR=shepherd addons: apt: packages: - python3-pip + - libasound2-dev - socat env: global: diff --git a/DevOps/frankfurter/scripts/update/install_update b/DevOps/frankfurter/scripts/update/install_update index 2a8e509e..1039bae1 100755 --- a/DevOps/frankfurter/scripts/update/install_update +++ b/DevOps/frankfurter/scripts/update/install_update @@ -4,6 +4,8 @@ # # Usage: install_update [extracted-tarball-root] +sudo rm -rf /docs + piecentral="$HOME/PieCentral" piecentral_backup="$HOME/PieCentral-backup" systemd_units="/etc/systemd/system" @@ -37,6 +39,8 @@ replace_package "$1/runtime" "$piecentral/runtime" replace_package "$1/hibike" "$piecentral/hibike" replace_package "$1/docs" "$HOME/docs" +sudo pip3 install "$1/resources/"*.whl "$1/resources/"*.tar.gz + # Restore files that should persist cp "$piecentral_backup/runtime/studentCode.py" "$piecentral/runtime" cp "$piecentral_backup/runtime/namedPeripherals.csv" "$piecentral/runtime" diff --git a/ansible-protos/fieldcontrol.proto b/ansible-protos/fieldcontrol.proto deleted file mode 100644 index 96a0acab..00000000 --- a/ansible-protos/fieldcontrol.proto +++ /dev/null @@ -1,31 +0,0 @@ -syntax = "proto3"; - -message FieldControlToDawn { - enum TeamColor { - NONE = 0; - BLUE = 1; - GOLD = 2; - } - - enum StudentCodeStatus { - IDLE = 0; - TELEOP = 1; - AUTONOMOUS = 2; - ESTOP = 3; - } - - TeamColor team_color = 1; - StudentCodeStatus student_code_status = 2; -} - -message DawnToFieldControl { - enum DawnStatus { - STUDENT_DISCONNECT = 0; - IDLE = 1; - TELEOP = 2; - AUTO = 3; - ESTOP = 4; - } - - DawnStatus dawn_status = 1; -} diff --git a/dawn/Makefile b/dawn/Makefile index f854b557..730ce3e0 100644 --- a/dawn/Makefile +++ b/dawn/Makefile @@ -7,7 +7,7 @@ start: yarn start install: - yarn install --frozen-lockfile + yarn install artifacts-install: yarn add --no-lockfile electron-packager diff --git a/dawn/package.json b/dawn/package.json index b0c70430..d2cbba6f 100644 --- a/dawn/package.json +++ b/dawn/package.json @@ -41,7 +41,7 @@ "babel-preset-stage-3": "6.24.1", "better-npm-run": "0.1.0", "chai": "4.1.2", - "electron-devtools-installer": "2.2.3", + "electron-devtools-installer": "2.2.4", "electron-packager": "^10.1.1", "eslint": "4.18.1", "eslint-config-airbnb": "16.1.0", diff --git a/dawn/yarn.lock b/dawn/yarn.lock index e02cbba9..fa147062 100644 --- a/dawn/yarn.lock +++ b/dawn/yarn.lock @@ -5,16 +5,19 @@ "7zip@0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/7zip/-/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30" + integrity sha1-nK+xca+CMpSQNTtIFvAzR6oVCjA= "@babel/runtime@^7.1.2": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.3.tgz#79888e452034223ad9609187a0ad1fe0d2ad4bdc" + integrity sha512-9lsJwJLxDh/T3Q3SZszfWOTkk3pHbkmH+3KY+zwIDmsNlxsumuhS2TH3NIpktU4kNvfzy+k3eLT7aTJSPTo0OA== dependencies: regenerator-runtime "^0.13.2" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== dependencies: call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" @@ -22,26 +25,32 @@ "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= "@protobufjs/base64@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== "@protobufjs/codegen@^2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== "@protobufjs/eventemitter@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= "@protobufjs/fetch@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" @@ -49,76 +58,93 @@ "@protobufjs/float@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= "@protobufjs/inquire@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= "@protobufjs/path@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= "@protobufjs/pool@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= "@protobufjs/utf8@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= "@sindresorhus/is@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== "@types/long@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" + integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q== "@types/node@^10.1.0", "@types/node@^10.12.18": version "10.14.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.4.tgz#1c586b991457cbb58fef51bc4e0cfcfa347714b5" + integrity sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg== abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-dynamic-import@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== dependencies: acorn "^5.0.0" acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= dependencies: acorn "^3.0.4" acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= acorn@^5.0.0, acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= agent-base@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== dependencies: es6-promisify "^5.0.0" ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" + integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -128,6 +154,7 @@ ajv@^5.3.0: ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.5: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -137,48 +164,59 @@ ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.5: ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= any-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" + integrity sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI= any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" @@ -186,10 +224,12 @@ anymatch@^2.0.0: aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -197,16 +237,19 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argv@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= aria-query@^0.7.0: version "0.7.1" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" + integrity sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4= dependencies: ast-types-flow "0.0.7" commander "^2.11.0" @@ -214,32 +257,39 @@ aria-query@^0.7.0: arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= dependencies: arr-flatten "^1.0.1" arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" @@ -247,36 +297,44 @@ array-includes@^3.0.3: array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asar@^0.14.0: version "0.14.6" resolved "https://registry.yarnpkg.com/asar/-/asar-0.14.6.tgz#0e56ff7fad97470845391c3a2b8690b7cabef6d8" + integrity sha512-ZqybKcdO5At6y3ge2RHxVImc6Eltb2t3sxT7lk4T4zjZBSFUuIGCIZY6f41dCjlvJSizN5QPRr8YTgMhpgBjLg== dependencies: chromium-pickle-js "^0.2.0" commander "^2.9.0" @@ -290,6 +348,7 @@ asar@^0.14.0: asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -298,86 +357,105 @@ asn1.js@^4.0.0: asn1@~0.2.0, asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" assertion-error@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= ast-types@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" + integrity sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ== ast-types@0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" + integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== async-each@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735" + integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg== async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= async@^2.0.0: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: lodash "^4.17.11" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== author-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== axobject-query@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" + integrity sha1-YvWdvFnJ+SQnWco0mWDnov48NsA= dependencies: ast-types-flow "0.0.7" babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -386,6 +464,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: babel-core@6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + integrity sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g= dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -410,6 +489,7 @@ babel-core@6.26.0: babel-core@^6.26.0: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -434,6 +514,7 @@ babel-core@^6.26.0: babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -447,6 +528,7 @@ babel-generator@^6.26.0: babel-helper-bindify-decorators@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + integrity sha1-FMGeXxQte0fxmlJDHlKxzLxAozA= dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" @@ -455,6 +537,7 @@ babel-helper-bindify-decorators@^6.24.1: babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= dependencies: babel-helper-explode-assignable-expression "^6.24.1" babel-runtime "^6.22.0" @@ -463,6 +546,7 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: babel-helper-builder-react-jsx@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA= dependencies: babel-runtime "^6.26.0" babel-types "^6.26.0" @@ -471,6 +555,7 @@ babel-helper-builder-react-jsx@^6.24.1: babel-helper-call-delegate@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -480,6 +565,7 @@ babel-helper-call-delegate@^6.24.1: babel-helper-define-map@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.26.0" @@ -489,6 +575,7 @@ babel-helper-define-map@^6.24.1: babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" @@ -497,6 +584,7 @@ babel-helper-explode-assignable-expression@^6.24.1: babel-helper-explode-class@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + integrity sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes= dependencies: babel-helper-bindify-decorators "^6.24.1" babel-runtime "^6.22.0" @@ -506,6 +594,7 @@ babel-helper-explode-class@^6.24.1: babel-helper-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= dependencies: babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" @@ -516,6 +605,7 @@ babel-helper-function-name@^6.24.1: babel-helper-get-function-arity@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -523,6 +613,7 @@ babel-helper-get-function-arity@^6.24.1: babel-helper-hoist-variables@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -530,6 +621,7 @@ babel-helper-hoist-variables@^6.24.1: babel-helper-optimise-call-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -537,6 +629,7 @@ babel-helper-optimise-call-expression@^6.24.1: babel-helper-regex@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= dependencies: babel-runtime "^6.26.0" babel-types "^6.26.0" @@ -545,6 +638,7 @@ babel-helper-regex@^6.24.1: babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" @@ -555,6 +649,7 @@ babel-helper-remap-async-to-generator@^6.24.1: babel-helper-replace-supers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= dependencies: babel-helper-optimise-call-expression "^6.24.1" babel-messages "^6.23.0" @@ -566,6 +661,7 @@ babel-helper-replace-supers@^6.24.1: babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -573,6 +669,7 @@ babel-helpers@^6.24.1: babel-loader@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.3.tgz#ff5b440da716e9153abb946251a9ab7670037b16" + integrity sha512-PeN29YvOynPMvNk7QCzsHqxpmfXwKAC+uxkiSNFQsmXBBVltzEkVWmv/Ip3tx7yk149dQUwk497bTXNu+DZjLA== dependencies: find-cache-dir "^1.0.0" loader-utils "^1.0.2" @@ -581,66 +678,81 @@ babel-loader@7.1.3: babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= dependencies: babel-runtime "^6.22.0" babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= dependencies: babel-runtime "^6.22.0" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + integrity sha1-a8lj67FuzLrmuStZbrfzXDQqi5o= babel-plugin-syntax-class-constructor-call@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY= babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94= babel-plugin-syntax-decorators@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + integrity sha1-MSVjtNvePMgGzuPkFszurd0RrAs= babel-plugin-syntax-dynamic-import@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo= babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= babel-plugin-syntax-export-extensions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE= babel-plugin-syntax-flow@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= babel-plugin-transform-async-generator-functions@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + integrity sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds= dependencies: babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-generators "^6.5.0" @@ -649,6 +761,7 @@ babel-plugin-transform-async-generator-functions@^6.24.1: babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= dependencies: babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-functions "^6.8.0" @@ -657,6 +770,7 @@ babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async- babel-plugin-transform-class-constructor-call@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + integrity sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk= dependencies: babel-plugin-syntax-class-constructor-call "^6.18.0" babel-runtime "^6.22.0" @@ -665,6 +779,7 @@ babel-plugin-transform-class-constructor-call@^6.24.1: babel-plugin-transform-class-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + integrity sha1-anl2PqYdM9NvN7YRqp3vgagbRqw= dependencies: babel-helper-function-name "^6.24.1" babel-plugin-syntax-class-properties "^6.8.0" @@ -674,6 +789,7 @@ babel-plugin-transform-class-properties@^6.24.1: babel-plugin-transform-decorators@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + integrity sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0= dependencies: babel-helper-explode-class "^6.24.1" babel-plugin-syntax-decorators "^6.13.0" @@ -684,18 +800,21 @@ babel-plugin-transform-decorators@^6.24.1: babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= dependencies: babel-runtime "^6.26.0" babel-template "^6.26.0" @@ -706,6 +825,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20 babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= dependencies: babel-helper-define-map "^6.24.1" babel-helper-function-name "^6.24.1" @@ -720,6 +840,7 @@ babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-cla babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -727,12 +848,14 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transfor babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -740,12 +863,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2 babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" @@ -754,12 +879,14 @@ babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es20 babel-plugin-transform-es2015-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-runtime "^6.22.0" @@ -768,6 +895,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015 babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.26.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== dependencies: babel-plugin-transform-strict-mode "^6.24.1" babel-runtime "^6.26.0" @@ -777,6 +905,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" @@ -785,6 +914,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-e babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= dependencies: babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-runtime "^6.22.0" @@ -793,6 +923,7 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015 babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" @@ -800,6 +931,7 @@ babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es201 babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= dependencies: babel-helper-call-delegate "^6.24.1" babel-helper-get-function-arity "^6.24.1" @@ -811,6 +943,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015- babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -818,12 +951,14 @@ babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transfo babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -832,18 +967,21 @@ babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es201 babel-plugin-transform-es2015-template-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" @@ -852,6 +990,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es20 babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= dependencies: babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" babel-plugin-syntax-exponentiation-operator "^6.8.0" @@ -860,6 +999,7 @@ babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-e babel-plugin-transform-export-extensions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + integrity sha1-U3OLR+deghhYnuqUbLvTkQm75lM= dependencies: babel-plugin-syntax-export-extensions "^6.8.0" babel-runtime "^6.22.0" @@ -867,6 +1007,7 @@ babel-plugin-transform-export-extensions@^6.22.0: babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-strip-types@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= dependencies: babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.22.0" @@ -874,6 +1015,7 @@ babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-str babel-plugin-transform-object-rest-spread@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" @@ -881,12 +1023,14 @@ babel-plugin-transform-object-rest-spread@^6.22.0: babel-plugin-transform-react-display-name@^6.23.0: version "6.25.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE= dependencies: babel-runtime "^6.22.0" babel-plugin-transform-react-jsx-self@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + integrity sha1-322AqdomEqEh5t3XVYvL7PBuY24= dependencies: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" @@ -894,6 +1038,7 @@ babel-plugin-transform-react-jsx-self@^6.22.0: babel-plugin-transform-react-jsx-source@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY= dependencies: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" @@ -901,6 +1046,7 @@ babel-plugin-transform-react-jsx-source@^6.22.0: babel-plugin-transform-react-jsx@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM= dependencies: babel-helper-builder-react-jsx "^6.24.1" babel-plugin-syntax-jsx "^6.8.0" @@ -909,12 +1055,14 @@ babel-plugin-transform-react-jsx@^6.24.1: babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= dependencies: regenerator-transform "^0.10.0" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" @@ -922,6 +1070,7 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-preset-env@1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + integrity sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA== dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-syntax-trailing-function-commas "^6.22.0" @@ -957,6 +1106,7 @@ babel-preset-env@1.6.1: babel-preset-es2015@^6.9.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0" @@ -986,12 +1136,14 @@ babel-preset-es2015@^6.9.0: babel-preset-flow@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + integrity sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" babel-preset-react@6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + integrity sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A= dependencies: babel-plugin-syntax-jsx "^6.3.13" babel-plugin-transform-react-display-name "^6.23.0" @@ -1003,6 +1155,7 @@ babel-preset-react@6.24.1: babel-preset-stage-1@^6.5.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + integrity sha1-dpLNfc1oSZB+auSgqFWJz7niv7A= dependencies: babel-plugin-transform-class-constructor-call "^6.24.1" babel-plugin-transform-export-extensions "^6.22.0" @@ -1011,6 +1164,7 @@ babel-preset-stage-1@^6.5.0: babel-preset-stage-2@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + integrity sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE= dependencies: babel-plugin-syntax-dynamic-import "^6.18.0" babel-plugin-transform-class-properties "^6.24.1" @@ -1020,6 +1174,7 @@ babel-preset-stage-2@^6.24.1: babel-preset-stage-3@6.24.1, babel-preset-stage-3@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + integrity sha1-g2raCp56f6N8sTj7kyb4eTSkg5U= dependencies: babel-plugin-syntax-trailing-function-commas "^6.22.0" babel-plugin-transform-async-generator-functions "^6.24.1" @@ -1030,6 +1185,7 @@ babel-preset-stage-3@6.24.1, babel-preset-stage-3@^6.24.1: babel-register@^6.26.0, babel-register@^6.9.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -1042,6 +1198,7 @@ babel-register@^6.26.0, babel-register@^6.9.0: babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -1049,6 +1206,7 @@ babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runti babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -1059,6 +1217,7 @@ babel-template@^6.24.1, babel-template@^6.26.0: babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -1073,6 +1232,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0: babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" @@ -1082,30 +1242,37 @@ babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: babylon@^6.17.3, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + integrity sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE= base64-js@^1.0.2, base64-js@^1.2.3: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -1118,18 +1285,21 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" better-npm-run@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/better-npm-run/-/better-npm-run-0.1.0.tgz#ea9b2e8e57d6b2a06906ab28bc5672ce8eb2fee8" + integrity sha1-6psujlfWsqBpBqsovFZyzo6y/ug= dependencies: commander "^2.9.0" dotenv "^2.0.0" @@ -1138,14 +1308,17 @@ better-npm-run@0.1.0: big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= dependencies: buffers "~0.1.1" chainsaw "~0.1.0" @@ -1153,14 +1326,17 @@ binary@^0.3.0: binaryextensions@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.2.tgz#c83c3d74233ba7674e4f313cb2a2b70f54e94b7c" + integrity sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg== bindings@~1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.1.tgz#21fc7c6d67c18516ec5aaa2815b145ff77b26ea5" + integrity sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew== bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== dependencies: readable-stream "^2.3.5" safe-buffer "^5.1.1" @@ -1168,18 +1344,22 @@ bl@^1.0.0: blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.1: version "3.5.4" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1187,14 +1367,17 @@ brace-expansion@^1.1.7: brace@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/brace/-/brace-0.11.0.tgz#155cd80607687dc8cb908f0df94e62a033c1d563" + integrity sha1-FVzYBgdofcjLkI8N+U5ioDPB1WM= brace@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/brace/-/brace-0.11.1.tgz#4896fcc9d544eef45f4bb7660db320d3b379fe58" + integrity sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg= braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1203,6 +1386,7 @@ braces@^1.8.2: braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1218,14 +1402,17 @@ braces@^2.3.1, braces@^2.3.2: brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1237,6 +1424,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -1245,6 +1433,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" @@ -1254,6 +1443,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -1261,6 +1451,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -1273,12 +1464,14 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@^2.1.2: version "2.11.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + integrity sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA== dependencies: caniuse-lite "^1.0.30000792" electron-to-chromium "^1.3.30" @@ -1286,10 +1479,12 @@ browserslist@^2.1.2: buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" @@ -1297,22 +1492,27 @@ buffer-alloc@^1.2.0: buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1321,24 +1521,29 @@ buffer@^4.3.0: buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= bufferutil@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== dependencies: node-gyp-build "~3.7.0" builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= cacache@^10.0.4: version "10.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== dependencies: bluebird "^3.5.1" chownr "^1.0.1" @@ -1357,6 +1562,7 @@ cacache@^10.0.4: cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -1371,6 +1577,7 @@ cache-base@^1.0.1: cacheable-request@^2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= dependencies: clone-response "1.0.2" get-stream "3.0.0" @@ -1383,24 +1590,29 @@ cacheable-request@^2.1.1: call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= dependencies: callsites "^0.2.0" callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" map-obj "^1.0.0" @@ -1408,22 +1620,27 @@ camelcase-keys@^2.0.0: camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= caniuse-lite@^1.0.30000792: version "1.0.30000957" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz#fb1026bf184d7d62c685205358c3b24b9e29f7b3" + integrity sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chai@4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= dependencies: assertion-error "^1.0.1" check-error "^1.0.1" @@ -1435,12 +1652,14 @@ chai@4.1.2: chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= dependencies: traverse ">=0.3.0 <0.4" chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -1451,6 +1670,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -1459,6 +1679,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4 chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= dependencies: ansi-styles "~1.0.0" has-color "~0.1.0" @@ -1467,18 +1688,22 @@ chalk@~0.4.0: chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-error@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= chokidar@^2.0.2: version "2.1.5" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" + integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -1497,18 +1722,22 @@ chokidar@^2.0.2: chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== chrome-trace-event@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz#d395af2d31c87b90a716c831fe326f69768ec084" + integrity sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A== chromium-pickle-js@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -1516,10 +1745,12 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -1529,32 +1760,38 @@ class-utils@^0.3.5: classnames@^2.2.5: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== cli-cursor@^1.0.1, cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= dependencies: restore-cursor "^1.0.1" cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= cli-table@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= dependencies: colors "1.0.3" cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= dependencies: slice-ansi "0.0.4" string-width "^1.0.1" @@ -1562,10 +1799,12 @@ cli-truncate@^0.2.1: cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -1574,32 +1813,39 @@ cliui@^3.2.0: clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= clone-response@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= clone@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= cloneable-readable@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + integrity sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg== dependencies: inherits "^2.0.1" process-nextick-args "^2.0.0" @@ -1608,14 +1854,17 @@ cloneable-readable@^1.0.0: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= codecov@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.3.0.tgz#7bf337b3f7b0474606b5c31c56dd9e44e395e15d" + integrity sha512-S70c3Eg9SixumOvxaKE/yKUxb9ihu/uebD9iPO2IR73IdP4i6ZzjXEULj3d0HeyWPr0DqBfDkjNBWxURjVO5hw== dependencies: argv "^0.0.2" ignore-walk "^3.0.1" @@ -1626,6 +1875,7 @@ codecov@^3.0.0: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -1633,66 +1883,81 @@ collection-visit@^1.0.0: color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= colors@^1.1.2: version "1.3.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== dependencies: delayed-stream "~1.0.0" commander@2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== commander@^2.11.0, commander@^2.9.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compare-version@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1, component-emitter@^1.2.0, component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -1702,34 +1967,41 @@ concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^ console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= convert-source-map@^1.5.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" cookiejar@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -1741,26 +2013,32 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== core-js@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" + integrity sha1-+rg/uwstjchfpjbEudNMdUIMbWU= core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" elliptic "^6.0.0" @@ -1768,6 +2046,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -1778,6 +2057,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1789,6 +2069,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: create-react-class@15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" + integrity sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co= dependencies: fbjs "^0.8.9" loose-envify "^1.3.1" @@ -1797,6 +2078,7 @@ create-react-class@15.6.2: cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -1805,6 +2087,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: cross-spawn@^6.0.4, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -1815,10 +2098,12 @@ cross-spawn@^6.0.4, cross-spawn@^6.0.5: cross-unzip@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/cross-unzip/-/cross-unzip-0.0.2.tgz#5183bc47a09559befcf98cc4657964999359372f" + integrity sha1-UYO8R6CVWb78+YzEZXlkmZNZNy8= crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1835,82 +2120,99 @@ crypto-browserify@^3.11.0: cuint@^0.2.1: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" currify@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/currify/-/currify-2.0.6.tgz#86064386778e315c043382d53ba278efc6a9ef87" + integrity sha512-F0lbcoBkA2FMcejFeHJkDEhQ1AvVkTpkn9PMzJch+7mHy5WdteZ9t+nhT6cOdga4uRay3rjvprgp8tUkixFy8w== cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= damerau-levenshtein@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" + integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ= dargs@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" + integrity sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk= dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= dateformat@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= debug@2.6.9, debug@^2.0.0, debug@^2.1.0, debug@^2.1.2, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" debug@^3.0.0, debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-response@^3.2.0, decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" decompress-zip@0.3.x: version "0.3.2" resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.2.tgz#f3fa2841666abce394604f4a9e8a7085c202d464" + integrity sha512-Ab1QY4LrWMrUuo53lLnmGOby7v8ryqxJ+bKibKSiPisx+25mhut1dScVBXAYx14i/PqSrFZvR2FRRazhLbvL+g== dependencies: binary "^0.3.0" graceful-fs "^4.1.3" @@ -1923,42 +2225,50 @@ decompress-zip@0.3.x: deep-eql@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" deep-extend@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + integrity sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8= deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" @@ -1966,14 +2276,17 @@ define-property@^2.0.2: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -1981,32 +2294,39 @@ des.js@^1.0.0: detect-conflict@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e" + integrity sha1-CIZXpmqWHAUBnbfEIwiDsca0F24= detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= dependencies: repeating "^2.0.0" detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= diff@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + integrity sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww== diff@^2.1.2: version "2.2.3" resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" + integrity sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k= diff@^3.3.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -2015,6 +2335,7 @@ diffie-hellman@^5.0.0: dir-glob@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: arrify "^1.0.1" path-type "^3.0.0" @@ -2022,6 +2343,7 @@ dir-glob@2.0.0: doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -2029,34 +2351,41 @@ doctrine@1.5.0: doctrine@^2.0.0, doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" dom-helpers@^3.2.0, dom-helpers@^3.2.1, dom-helpers@^3.3.1: version "3.4.0" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== dependencies: "@babel/runtime" "^7.1.2" dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== dotenv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" + integrity sha1-vXWcNXqqcDZeAclrewvsCKbg2Uk= duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -2066,6 +2395,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -2073,6 +2403,7 @@ ecc-jsbn@~0.1.1: editions@^2.1.2, editions@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/editions/-/editions-2.1.3.tgz#727ccf3ec2c7b12dcc652c71000f16c4824d6f7d" + integrity sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw== dependencies: errlop "^1.1.1" semver "^5.6.0" @@ -2080,10 +2411,12 @@ editions@^2.1.2, editions@^2.1.3: ejs@^2.3.1: version "2.6.1" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" + integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== -electron-devtools-installer@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.3.tgz#58b9a4ec507377bc46e091cd43714188e0c369be" +electron-devtools-installer@2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-2.2.4.tgz#261a50337e37121d338b966f07922eb4939a8763" + integrity sha512-b5kcM3hmUqn64+RUcHjjr8ZMpHS2WJ5YO0pnG9+P/RTdx46of/JrEjuciHWux6pE+On6ynWhHJF53j/EDJN0PA== dependencies: "7zip" "0.0.6" cross-unzip "0.0.2" @@ -2093,6 +2426,7 @@ electron-devtools-installer@2.2.3: electron-download@^4.0.0, electron-download@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.1.tgz#02e69556705cc456e520f9e035556ed5a015ebe8" + integrity sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg== dependencies: debug "^3.0.0" env-paths "^1.0.0" @@ -2107,6 +2441,7 @@ electron-download@^4.0.0, electron-download@^4.1.0: electron-json-storage@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/electron-json-storage/-/electron-json-storage-4.0.2.tgz#c0d662ccd01bc6567d6078f17a6842ac74328ce4" + integrity sha1-wNZizNAbxlZ9YHjxemhCrHQyjOQ= dependencies: async "^2.0.0" lodash "^4.0.1" @@ -2117,6 +2452,7 @@ electron-json-storage@4.0.2: electron-osx-sign@^0.4.1: version "0.4.11" resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz#8377732fe7b207969f264b67582ee47029ce092f" + integrity sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ== dependencies: bluebird "^3.5.0" compare-version "^0.1.2" @@ -2128,6 +2464,7 @@ electron-osx-sign@^0.4.1: electron-packager@^10.1.1: version "10.1.2" resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-10.1.2.tgz#a2308d14f63c321a089294f322fe0d51190bfd7c" + integrity sha1-ojCNFPY8MhoIkpTzIv4NURkL/Xw= dependencies: asar "^0.14.0" debug "^3.0.0" @@ -2151,10 +2488,12 @@ electron-packager@^10.1.1: electron-to-chromium@^1.3.30: version "1.3.124" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz#861fc0148748a11b3e5ccebdf8b795ff513fa11f" + integrity sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w== electron@>=1.7.16: version "4.1.4" resolved "https://registry.yarnpkg.com/electron/-/electron-4.1.4.tgz#41ba9e041f38c25c62a7db806884410654df058f" + integrity sha512-MelOjntJvd33izEjR6H4N/Uii7y535z/b2BuYXJGLNSHL6o1IlyhUQmfiT87kWABayERgeuYERgvsyf956OOFw== dependencies: "@types/node" "^10.12.18" electron-download "^4.1.0" @@ -2163,10 +2502,12 @@ electron@>=1.7.16: elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= elliptic@^6.0.0: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2179,26 +2520,31 @@ elliptic@^6.0.0: emoji-regex@^6.1.0: version "6.5.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" + integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= dependencies: iconv-lite "~0.4.13" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" engine.io-client@~3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" + integrity sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ== dependencies: component-emitter "1.2.1" component-inherit "0.0.3" @@ -2215,6 +2561,7 @@ engine.io-client@~3.3.1: engine.io-parser@~2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" @@ -2225,6 +2572,7 @@ engine.io-parser@~2.1.1: enhanced-resolve@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" @@ -2233,28 +2581,33 @@ enhanced-resolve@^4.0.0: env-paths@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= errlop@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/errlop/-/errlop-1.1.1.tgz#d9ae4c76c3e64956c5d79e6e035d6343bfd62250" + integrity sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw== dependencies: editions "^2.1.2" errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" error@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= dependencies: string-template "~0.2.1" xtend "~4.0.0" @@ -2262,6 +2615,7 @@ error@^7.0.2: es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" @@ -2273,6 +2627,7 @@ es-abstract@^1.7.0: es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -2281,36 +2636,43 @@ es-to-primitive@^1.2.0: es6-promise@^4.0.3, es6-promise@^4.1.1: version "4.2.6" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== es6-promise@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" + integrity sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y= es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: es6-promise "^4.0.3" escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-config-airbnb-base@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" + integrity sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA== dependencies: eslint-restricted-globals "^0.1.1" eslint-config-airbnb@16.1.0: version "16.1.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz#2546bfb02cc9fe92284bf1723ccf2e87bc45ca46" + integrity sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw== dependencies: eslint-config-airbnb-base "^12.1.0" eslint-import-resolver-node@^0.3.1, eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: debug "^2.6.9" resolve "^1.5.0" @@ -2318,6 +2680,7 @@ eslint-import-resolver-node@^0.3.1, eslint-import-resolver-node@^0.3.2: eslint-loader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.0.0.tgz#d136619b5c684e36531ffc28c60a56e404608f5d" + integrity sha512-VxxGDI4bXzLk0+/jMt/0EkGMRKS9ox6Czx+yapMb9WJmcS/ZHhlhqcVUNgUjFBNp02j/2pZLdGOrG7EXyjoz/g== dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -2328,6 +2691,7 @@ eslint-loader@2.0.0: eslint-module-utils@^2.1.1, eslint-module-utils@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" + integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" @@ -2335,6 +2699,7 @@ eslint-module-utils@^2.1.1, eslint-module-utils@^2.3.0: eslint-plugin-import@2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + integrity sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g== dependencies: builtin-modules "^1.1.1" contains-path "^0.1.0" @@ -2350,6 +2715,7 @@ eslint-plugin-import@2.8.0: eslint-plugin-import@^2.8.0: version "2.16.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" + integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== dependencies: contains-path "^0.1.0" debug "^2.6.9" @@ -2365,6 +2731,7 @@ eslint-plugin-import@^2.8.0: eslint-plugin-jsx-a11y@6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz#54583d1ae442483162e040e13cc31865465100e5" + integrity sha1-VFg9GuRCSDFi4EDhPMMYZUZRAOU= dependencies: aria-query "^0.7.0" array-includes "^3.0.3" @@ -2377,6 +2744,7 @@ eslint-plugin-jsx-a11y@6.0.3: eslint-plugin-react@7.5.1: version "7.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz#52e56e8d80c810de158859ef07b880d2f56ee30b" + integrity sha512-YGSjB9Qu6QbVTroUZi66pYky3DfoIPLdHQ/wmrBGyBRnwxQsBXAov9j2rpXt/55i8nyMv6IRWJv2s4d4YnduzQ== dependencies: doctrine "^2.0.0" has "^1.0.1" @@ -2386,10 +2754,12 @@ eslint-plugin-react@7.5.1: eslint-restricted-globals@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2397,10 +2767,12 @@ eslint-scope@^3.7.1: eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== eslint@4.18.1: version "4.18.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.1.tgz#b9138440cb1e98b2f44a0d578c6ecf8eae6150b0" + integrity sha512-gPSfpSRCHre1GLxGmO68tZNxOlL2y7xBd95VcLD+Eo4S2js31YoMum3CAQIOaxY24hqYOMksMvW38xuuWKQTgw== dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -2443,6 +2815,7 @@ eslint@4.18.1: espree@^3.5.2: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" @@ -2450,34 +2823,41 @@ espree@^3.5.2: esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== dependencies: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" @@ -2485,6 +2865,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -2497,16 +2878,19 @@ execa@^0.7.0: exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= dependencies: is-posix-bracket "^0.1.0" expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -2519,28 +2903,33 @@ expand-brackets@^2.1.4: expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= dependencies: fill-range "^2.1.0" expand-template@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd" + integrity sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg== expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -2548,10 +2937,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + integrity sha1-Etew24UPf/fnCBuvQAVwAGDEYAs= dependencies: extend "^3.0.0" spawn-sync "^1.0.15" @@ -2560,6 +2951,7 @@ external-editor@^1.1.0: external-editor@^2.0.4, external-editor@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -2568,6 +2960,7 @@ external-editor@^2.0.4, external-editor@^2.1.0: external-editor@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -2576,12 +2969,14 @@ external-editor@^3.0.3: extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= dependencies: is-extglob "^1.0.0" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -2595,6 +2990,7 @@ extglob@^2.0.4: extract-zip@^1.0.3: version "1.6.7" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= dependencies: concat-stream "1.6.2" debug "2.6.9" @@ -2604,22 +3000,27 @@ extract-zip@^1.0.3: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-glob@^2.0.2: version "2.2.6" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" + integrity sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w== dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" "@nodelib/fs.stat" "^1.1.2" @@ -2631,14 +3032,17 @@ fast-glob@^2.0.2: fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fbjs@^0.8.16, fbjs@^0.8.9: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -2651,12 +3055,14 @@ fbjs@^0.8.16, fbjs@^0.8.9: fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= dependencies: pend "~1.2.0" figures@^1.3.5, figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" @@ -2664,12 +3070,14 @@ figures@^1.3.5, figures@^1.7.0: figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -2677,10 +3085,12 @@ file-entry-cache@^2.0.0: filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== dependencies: is-number "^2.1.0" isobject "^2.0.0" @@ -2691,6 +3101,7 @@ fill-range@^2.1.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -2700,6 +3111,7 @@ fill-range@^4.0.0: find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= dependencies: commondir "^1.0.1" mkdirp "^0.5.1" @@ -2708,6 +3120,7 @@ find-cache-dir@^0.1.1: find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= dependencies: commondir "^1.0.1" make-dir "^1.0.0" @@ -2716,6 +3129,7 @@ find-cache-dir@^1.0.0: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -2723,18 +3137,21 @@ find-up@^1.0.0: find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" first-chunk-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= dependencies: readable-stream "^2.0.2" flat-cache@^1.2.1: version "1.3.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== dependencies: circular-json "^0.3.1" graceful-fs "^4.1.2" @@ -2744,10 +3161,12 @@ flat-cache@^1.2.1: flow-parser@^0.*: version "0.96.1" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.96.1.tgz#477affba976b7e22963aa9a76888c30c783f63bd" + integrity sha512-T8TZV/L7Iy8sp7eoF1G7OLmXGWL25/GflyAK4W1fc9/3ny7RE0cdpWT69nEIoHWsWZ8nFpQCN791hXTddfRKyg== flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" @@ -2755,20 +3174,24 @@ flush-write-stream@^1.0.0: for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= dependencies: for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^2.3.1, form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -2777,16 +3200,19 @@ form-data@^2.3.1, form-data@~2.3.2: formidable@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659" + integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg== fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" from2@^2.1.0, from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -2794,10 +3220,12 @@ from2@^2.1.0, from2@^2.1.1: fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@0.26.7: version "0.26.7" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + integrity sha1-muH92UiXeY7at20JGM9C0MMYT6k= dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -2808,6 +3236,7 @@ fs-extra@0.26.7: fs-extra@5.0.0, fs-extra@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -2816,6 +3245,7 @@ fs-extra@5.0.0, fs-extra@^5.0.0: fs-extra@^4.0.0, fs-extra@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -2824,12 +3254,14 @@ fs-extra@^4.0.0, fs-extra@^4.0.1: fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== dependencies: minipass "^2.2.1" fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -2839,10 +3271,12 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" + integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== dependencies: nan "^2.9.2" node-pre-gyp "^0.10.0" @@ -2850,18 +3284,22 @@ fsevents@^1.2.7: fullstore@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fullstore/-/fullstore-1.1.0.tgz#a7a8b00ca07d86faca05fb825c45e5d1c3bba97e" + integrity sha512-XNlCWr3KBIL97G8mTR+dZ/J648ECCffflfFRgZW3Zm7pO0PYnH/ZCbwZjV1Dw4LrrDdhV6gnayiIcmdIY4JTsw== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2875,14 +3313,17 @@ gauge@~2.7.3: get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= get-package-info@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" + integrity sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw= dependencies: bluebird "^3.1.1" debug "^2.2.0" @@ -2892,24 +3333,29 @@ get-package-info@^1.0.0: get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" gh-got@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" + integrity sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw== dependencies: got "^7.0.0" is-plain-obj "^1.1.0" @@ -2917,16 +3363,19 @@ gh-got@^6.0.0: github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= github-username@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417" + integrity sha1-y+KABBiDIG2kISrp5LXxacML9Bc= dependencies: gh-got "^6.0.0" glob-all@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" + integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= dependencies: glob "^7.0.5" yargs "~1.2.6" @@ -2934,6 +3383,7 @@ glob-all@^3.1.0: glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" @@ -2941,12 +3391,14 @@ glob-base@^0.3.0: glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= dependencies: is-glob "^2.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -2954,10 +3406,12 @@ glob-parent@^3.1.0: glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2969,6 +3423,7 @@ glob@7.1.2: glob@^6.0.1, glob@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= dependencies: inflight "^1.0.4" inherits "2" @@ -2979,6 +3434,7 @@ glob@^6.0.1, glob@^6.0.4: glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2990,6 +3446,7 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -2998,6 +3455,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -3008,6 +3466,7 @@ global-prefix@^1.0.1: global@^4.3.2, global@~4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= dependencies: min-document "^2.19.0" process "~0.5.1" @@ -3015,14 +3474,17 @@ global@^4.3.2, global@~4.3.0: globals@^11.0.1: version "11.11.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" + integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" + integrity sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg= dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -3034,6 +3496,7 @@ globby@^4.0.0: globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -3044,6 +3507,7 @@ globby@^6.1.0: globby@^8.0.1: version "8.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== dependencies: array-union "^1.0.1" dir-glob "2.0.0" @@ -3056,6 +3520,7 @@ globby@^8.0.1: got@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== dependencies: decompress-response "^3.2.0" duplexer3 "^0.1.4" @@ -3075,6 +3540,7 @@ got@^7.0.0: got@^8.2.0: version "8.3.2" resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== dependencies: "@sindresorhus/is" "^0.7.0" cacheable-request "^2.1.1" @@ -3097,24 +3563,29 @@ got@^8.2.0: graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== grouped-queue@^0.3.0, grouped-queue@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" + integrity sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw= dependencies: lodash "^4.17.2" growl@1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" + integrity sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: ajv "^6.5.5" har-schema "^2.0.0" @@ -3122,52 +3593,63 @@ har-validator@~5.1.0: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-binary2@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: isarray "2.0.1" has-color@~0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== dependencies: has-symbol-support-x "^1.4.1" has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -3176,6 +3658,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -3184,10 +3667,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -3195,12 +3680,14 @@ has-values@^1.0.0: has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -3208,6 +3695,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" @@ -3215,10 +3703,12 @@ hash.js@^1.0.0, hash.js@^1.0.3: he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -3227,10 +3717,12 @@ hmac-drbg@^1.0.0: hoist-non-react-statics@^2.2.1: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" @@ -3238,20 +3730,24 @@ home-or-tmp@^2.0.0: homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== http-cache-semantics@3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -3260,10 +3756,12 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= https-proxy-agent@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== dependencies: agent-base "^4.1.0" debug "^3.1.0" @@ -3271,56 +3769,68 @@ https-proxy-agent@^2.2.1: iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" ignore@^3.3.3, ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= immutable@3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -3328,18 +3838,22 @@ inflight@^1.0.4: inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inquirer@^1.0.2: version "1.2.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg= dependencies: ansi-escapes "^1.1.0" chalk "^1.0.0" @@ -3359,6 +3873,7 @@ inquirer@^1.0.2: inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -3378,6 +3893,7 @@ inquirer@^3.0.6: inquirer@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" + integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -3396,6 +3912,7 @@ inquirer@^5.1.0: inquirer@^6.0.0: version "6.2.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" + integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -3414,10 +3931,12 @@ inquirer@^6.0.0: interpret@^1.0.0, interpret@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== into-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= dependencies: from2 "^2.1.1" p-is-promise "^1.1.0" @@ -3425,62 +3944,74 @@ into-stream@^3.1.0: invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.1, invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -3489,6 +4020,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -3497,194 +4029,234 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= dependencies: is-extglob "^1.0.0" is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== is-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= is-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" + integrity sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI= dependencies: symbol-observable "^0.2.2" is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-promise@~1, is-promise@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" + integrity sha1-MVc3YcBX4zwukaq56W2gjO++duU= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= is-scoped@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30" + integrity sha1-RJypgpnnEwOCViieyytUDcQ3yzA= dependencies: scoped-regex "^1.0.0" is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: has-symbols "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isarray@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isbinaryfile@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== dependencies: buffer-alloc "^1.2.0" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isomorphic-fetch@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= dependencies: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" @@ -3692,10 +4264,12 @@ isomorphic-fetch@^2.1.1: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istextorbinary@^2.1.0: version "2.5.1" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.5.1.tgz#14a33824cf6b9d5d7743eac1be2bd2c310d0ccbd" + integrity sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g== dependencies: binaryextensions "^2.1.2" editions "^2.1.3" @@ -3704,6 +4278,7 @@ istextorbinary@^2.1.0: isurl@^1.0.0-alpha5: version "1.0.0" resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== dependencies: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" @@ -3711,14 +4286,17 @@ isurl@^1.0.0-alpha5: "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.12.0, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -3726,10 +4304,12 @@ js-yaml@^3.12.0, js-yaml@^3.9.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jscodeshift@^0.4.0, jscodeshift@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a" + integrity sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ== dependencies: async "^1.5.0" babel-plugin-transform-flow-strip-types "^6.8.0" @@ -3750,64 +4330,78 @@ jscodeshift@^0.4.0, jscodeshift@^0.4.1: jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-loader@0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" @@ -3817,12 +4411,14 @@ jsprim@^1.2.2: jsx-ast-utils@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" + integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= dependencies: array-includes "^3.0.3" jszip@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37" + integrity sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ== dependencies: core-js "~2.3.0" es6-promise "~3.0.2" @@ -3833,52 +4429,62 @@ jszip@3.1.5: keycode@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" + integrity sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ= keymirror@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" + integrity sha1-kYiJ6hP40KQufFVyUO7nE63JXDU= keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== dependencies: json-buffer "3.0.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -3886,16 +4492,19 @@ levn@^0.3.0, levn@~0.3.0: lie@~3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4= dependencies: immediate "~3.0.5" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= listr-update-renderer@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" + integrity sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc= dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -3909,6 +4518,7 @@ listr-update-renderer@^0.4.0: listr-verbose-renderer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" + integrity sha1-ggb0z21S3cWCfl/RSYng6WWTOjU= dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" @@ -3918,6 +4528,7 @@ listr-verbose-renderer@^0.4.0: listr@^0.13.0: version "0.13.0" resolved "https://registry.yarnpkg.com/listr/-/listr-0.13.0.tgz#20bb0ba30bae660ee84cc0503df4be3d5623887d" + integrity sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0= dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -3940,6 +4551,7 @@ listr@^0.13.0: load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -3950,6 +4562,7 @@ load-json-file@^1.0.0: load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -3959,6 +4572,7 @@ load-json-file@^2.0.0: loader-fs-cache@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" + integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== dependencies: find-cache-dir "^0.1.1" mkdirp "0.5.1" @@ -3966,10 +4580,12 @@ loader-fs-cache@^1.0.0: loader-runner@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" emojis-list "^2.0.0" @@ -3978,6 +4594,7 @@ loader-utils@^1.0.2, loader-utils@^1.1.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -3985,38 +4602,46 @@ locate-path@^2.0.0: lodash-es@^4.2.0, lodash-es@^4.2.1: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" + integrity sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q== lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + integrity sha1-9HGh2khr5g9quVXRcRVSPdHSVdU= lodash.get@^4.0.0, lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.isequal@^4.1.1: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= lodash@>=4.17.11, lodash@^4.0.1, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log-symbols@^1.0.1, log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= dependencies: chalk "^1.0.0" log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + integrity sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE= dependencies: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" @@ -4024,16 +4649,19 @@ log-update@^1.0.2: long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" @@ -4041,14 +4669,17 @@ loud-rejection@^1.0.0: lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -4056,30 +4687,36 @@ lru-cache@^4.0.1, lru-cache@^4.1.1: make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -4088,6 +4725,7 @@ md5.js@^1.3.4: mem-fs-editor@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz#dd0a6eaf2bb8a6b37740067aa549eb530105af9f" + integrity sha1-3Qpuryu4prN3QAZ6pUnrUwEFr58= dependencies: commondir "^1.0.1" deep-extend "^0.4.0" @@ -4103,6 +4741,7 @@ mem-fs-editor@^3.0.0: mem-fs@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc" + integrity sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw= dependencies: through2 "^2.0.0" vinyl "^1.1.0" @@ -4111,12 +4750,14 @@ mem-fs@^1.1.0: mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= dependencies: mimic-fn "^1.0.0" memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -4124,6 +4765,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: meow@^3.1.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -4139,14 +4781,17 @@ meow@^3.1.0: merge2@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== methods@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -4165,6 +4810,7 @@ micromatch@^2.3.7: micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -4183,6 +4829,7 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" @@ -4190,60 +4837,73 @@ miller-rabin@^4.0.0: mime-db@~1.38.0: version "1.38.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" + integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.22" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" + integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== dependencies: mime-db "~1.38.0" mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= dependencies: dom-walk "^0.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= minipass@^2.2.1, minipass@^2.3.4: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" @@ -4251,12 +4911,14 @@ minipass@^2.2.1, minipass@^2.3.4: minizlib@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== dependencies: minipass "^2.2.1" mississippi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -4272,6 +4934,7 @@ mississippi@^2.0.0: mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" @@ -4279,16 +4942,19 @@ mixin-deep@^1.2.0: mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" mkpath@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" + integrity sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE= mksnapshot@^0.3.4: version "0.3.5" resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.5.tgz#c63a9f91138ca9392e42b9979c31179ac900d4c0" + integrity sha512-PSBoZaj9h9myC3uRRW62RxmX8mrN3XbOkMEyURUD7v5CeJgtYTar50XU738t7Q0LtG1pBPtp5n5QwDGggRnEvw== dependencies: decompress-zip "0.3.x" fs-extra "0.26.7" @@ -4297,6 +4963,7 @@ mksnapshot@^0.3.4: mocha@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.0.tgz#cccac988b0bc5477119cba0e43de7af6d6ad8f4e" + integrity sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w== dependencies: browser-stdout "1.3.0" commander "2.11.0" @@ -4312,10 +4979,12 @@ mocha@5.0.0: mousetrap@1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.1.tgz#2a085f5c751294c75e7e81f6ec2545b29cbf42d9" + integrity sha1-KghfXHUSlMdefoH27CVFspy/Qtk= move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -4327,14 +4996,17 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== multimatch@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= dependencies: array-differ "^1.0.0" array-union "^1.0.1" @@ -4344,14 +5016,17 @@ multimatch@^2.0.0: mute-stream@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" + integrity sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s= mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= mz@^2.6.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: any-promise "^1.0.0" object-assign "^4.0.1" @@ -4360,14 +5035,17 @@ mz@^2.6.0: nan@^2.9.2: version "2.13.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== nan@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + integrity sha1-7XFfP+neArV6XmJS2QqWZ14fCFo= nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -4384,10 +5062,12 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: version "2.2.4" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -4396,28 +5076,34 @@ needle@^2.2.1: neo-async@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== nested-property@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/nested-property/-/nested-property-0.0.7.tgz#ff222f233ca8793c6828b4117091bea597130f4f" + integrity sha1-/yIvIzyoeTxoKLQRcJG+pZcTD08= nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-abi@^2.1.1: version "2.7.1" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.7.1.tgz#a8997ae91176a5fbaa455b194976e32683cda643" + integrity sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw== dependencies: semver "^5.4.1" node-dir@0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" + integrity sha1-VfuN62mQcHB/tn+RpGDwRIKUx30= node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== dependencies: encoding "^0.1.11" is-stream "^1.0.1" @@ -4425,14 +5111,17 @@ node-fetch@^1.0.1: node-fetch@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" + integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== node-gyp-build@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== node-libs-browser@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" + integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -4461,6 +5150,7 @@ node-libs-browser@^2.0.0: node-pre-gyp@^0.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -4476,6 +5166,7 @@ node-pre-gyp@^0.10.0: nodeify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nodeify/-/nodeify-1.0.1.tgz#64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d" + integrity sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0= dependencies: is-promise "~1.0.0" promise "~1.3.0" @@ -4483,6 +5174,7 @@ nodeify@^1.0.1: nomnom@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= dependencies: chalk "~0.4.0" underscore "~1.6.0" @@ -4490,16 +5182,19 @@ nomnom@^1.8.1: noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= nopt@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -4507,12 +5202,14 @@ nopt@^4.0.1: nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" @@ -4522,16 +5219,19 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== dependencies: prepend-http "^2.0.0" query-string "^5.0.1" @@ -4540,10 +5240,12 @@ normalize-url@2.0.1: npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== npm-packlist@^1.1.6: version "1.4.1" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -4551,12 +5253,14 @@ npm-packlist@^1.1.6: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npmlog@^4.0.1, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -4566,6 +5270,7 @@ npmlog@^4.0.1, npmlog@^4.0.2: nugget@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" + integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA= dependencies: debug "^2.1.3" minimist "^1.1.0" @@ -4578,26 +5283,32 @@ nugget@^2.0.1: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= numeral@2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/numeral/-/numeral-2.0.6.tgz#4ad080936d443c2561aed9f2197efffe25f4e506" + integrity sha1-StCAk21EPCVhrtnyGX7//iX05QY= oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -4606,24 +5317,29 @@ object-copy@^0.1.0: object-hash@^1.1.4: version "1.3.1" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== object-keys@^1.0.12: version "1.1.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" + integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= dependencies: for-own "^0.1.4" is-extendable "^0.1.1" @@ -4631,28 +5347,33 @@ object.omit@^2.0.0: object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -4664,6 +5385,7 @@ optionator@^0.8.2: ora@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + integrity sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q= dependencies: chalk "^1.1.1" cli-cursor "^1.0.2" @@ -4673,14 +5395,17 @@ ora@^0.2.3: os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: execa "^0.7.0" lcid "^1.0.0" @@ -4689,14 +5414,17 @@ os-locale@^2.0.0: os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" @@ -4704,72 +5432,87 @@ osenv@^0.1.4: p-cancelable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== p-cancelable@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== p-each-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= dependencies: p-reduce "^1.0.0" p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= p-lazy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-lazy/-/p-lazy-1.0.0.tgz#ec53c802f2ee3ac28f166cc82d0b2b02de27a835" + integrity sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU= p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== p-reduce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= dependencies: p-finally "^1.0.0" p-timeout@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== dependencies: p-finally "^1.0.0" p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= pako@~1.0.2, pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: cyclist "~0.2.2" inherits "^2.0.3" @@ -4778,6 +5521,7 @@ parallel-transform@^1.1.0: parse-asn1@^5.0.0: version "5.1.4" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -4789,12 +5533,14 @@ parse-asn1@^5.0.0: parse-author@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= dependencies: author-regex "^1.0.0" parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -4804,66 +5550,80 @@ parse-glob@^3.0.4: parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -4872,22 +5632,26 @@ path-type@^1.0.0: path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= dependencies: pify "^2.0.0" path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" pathval@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -4898,44 +5662,53 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= dependencies: find-up "^2.1.0" plist@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025" + integrity sha1-V8zbeggh3yGDEhejytVOPhRqECU= dependencies: base64-js "1.2.0" xmlbuilder "8.2.2" @@ -4944,6 +5717,7 @@ plist@^2.0.0: plist@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c" + integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ== dependencies: base64-js "^1.2.3" xmlbuilder "^9.0.7" @@ -4952,14 +5726,17 @@ plist@^3.0.1: pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= prebuild-install@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485" + integrity sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw== dependencies: expand-template "^1.0.2" github-from-package "0.0.0" @@ -4979,26 +5756,32 @@ prebuild-install@~2.3.0: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= prettier@^1.5.3: version "1.16.4" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" + integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== pretty-bytes@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ= dependencies: get-stdin "^4.0.1" meow "^3.1.0" @@ -5006,30 +5789,37 @@ pretty-bytes@^1.0.2: pretty-bytes@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= private@^0.1.6, private@^0.1.7, private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= progress-stream@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= dependencies: speedometer "~0.1.2" through2 "~0.2.3" @@ -5037,26 +5827,31 @@ progress-stream@^1.1.0: progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" + integrity sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU= dependencies: is-promise "~1" prop-types-extra@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f" + integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg== dependencies: react-is "^16.3.2" warning "^3.0.0" @@ -5064,6 +5859,7 @@ prop-types-extra@^1.0.1: prop-types@15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" + integrity sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY= dependencies: fbjs "^0.8.16" loose-envify "^1.3.1" @@ -5072,6 +5868,7 @@ prop-types@15.6.0: prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" @@ -5080,6 +5877,7 @@ prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2: protobufjs@>=6.8.6: version "6.8.8" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -5098,24 +5896,29 @@ protobufjs@>=6.8.6: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pruner@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/pruner/-/pruner-0.0.7.tgz#345fbcb3e80701163a1d7adf56bac229a5a1e4c1" + integrity sha1-NF+8s+gHARY6HXrfVrrCKaWh5ME= dependencies: fs-extra "^4.0.0" pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24: version "1.1.31" resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -5127,6 +5930,7 @@ public-encrypt@^4.0.0: pump@^1.0.0, pump@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -5134,6 +5938,7 @@ pump@^1.0.0, pump@^1.0.1: pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -5141,6 +5946,7 @@ pump@^2.0.0, pump@^2.0.1: pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" @@ -5149,30 +5955,37 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@^6.5.1: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: decode-uri-component "^0.2.0" object-assign "^4.1.0" @@ -5181,20 +5994,24 @@ query-string@^5.0.1: querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= rafl@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/rafl/-/rafl-1.2.2.tgz#fe930f758211020d47e38815f5196a8be4150740" + integrity sha1-/pMPdYIRAg1H44gV9Rlqi+QVB0A= dependencies: global "~4.3.0" randomatic@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: is-number "^4.0.0" kind-of "^6.0.0" @@ -5203,12 +6020,14 @@ randomatic@^3.0.0: randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" @@ -5216,6 +6035,7 @@ randomfill@^1.0.3: rc@^1.1.6, rc@^1.2.1, rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -5225,10 +6045,12 @@ rc@^1.1.6, rc@^1.2.1, rc@^1.2.7: rcedit@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-0.9.0.tgz#3910df57345399e2b0325f4a519007f89e55ef1c" + integrity sha1-ORDfVzRTmeKwMl9KUZAH+J5V7xw= react-ace@5.9.0: version "5.9.0" resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-5.9.0.tgz#427a1cc4869b960a6f9748aa7eb169a9269fc336" + integrity sha512-r6Tuce6seG05g9kT2Tio6DWohy06knG7e5u9OfhvMquZL+Cyu4eqPf60K1Vi2RXlS3+FWrdG8Rinwu4+oQjjgw== dependencies: brace "^0.11.0" lodash.get "^4.4.2" @@ -5238,6 +6060,7 @@ react-ace@5.9.0: react-bootstrap@0.32.0: version "0.32.0" resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-0.32.0.tgz#7f656be7b0f88e4bdda819135956bad10d3f167e" + integrity sha512-AbWq1qjDpuYZzXSF0N6oXwwlWa1MWNEhqH/d5I51Q4AN/zn8oTBqx7HgIICR0Jk6xGy76LzJQGr+31VP3ehfVw== dependencies: babel-runtime "^6.11.6" classnames "^2.2.5" @@ -5255,6 +6078,7 @@ react-bootstrap@0.32.0: react-dom@>=16.2.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5264,14 +6088,17 @@ react-dom@>=16.2.1: react-immutable-proptypes@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4" + integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ= react-is@^16.3.2, react-is@^16.8.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== react-joyride@1.11.1: version "1.11.1" resolved "https://registry.yarnpkg.com/react-joyride/-/react-joyride-1.11.1.tgz#d1849f5fc531894f2adf05b2003fa627273c1d34" + integrity sha512-EHtFOY6ICAROJ3OHGVzYkEjCk0xmAUrOHJNYIXf6pG5mdXbeM44pLvEjz2otoTc1bM1zOYuNdC6KeVgCm902qw== dependencies: eslint-plugin-import "^2.8.0" nested-property "^0.0.7" @@ -5280,10 +6107,12 @@ react-joyride@1.11.1: react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-overlays@^0.8.0: version "0.8.3" resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz#fad65eea5b24301cca192a169f5dddb0b20d3ac5" + integrity sha512-h6GT3jgy90PgctleP39Yu3eK1v9vaJAW73GOA/UbN9dJ7aAN4BTZD6793eI1D5U+ukMk17qiqN/wl3diK1Z5LA== dependencies: classnames "^2.2.5" dom-helpers "^3.2.1" @@ -5295,12 +6124,14 @@ react-overlays@^0.8.0: react-prop-types@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/react-prop-types/-/react-prop-types-0.4.0.tgz#f99b0bfb4006929c9af2051e7c1414a5c75b93d0" + integrity sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A= dependencies: warning "^3.0.0" react-redux@5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946" + integrity sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw== dependencies: hoist-non-react-statics "^2.2.1" invariant "^2.0.0" @@ -5312,6 +6143,7 @@ react-redux@5.0.6: react-transition-group@^2.0.0, react-transition-group@^2.2.0: version "2.8.0" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.8.0.tgz#d6d8f635d81a0955b67348be5d017cff77d6c75f" + integrity sha512-So23a1MPn8CGoW5WNU4l0tLiVkOFmeXSS1K4Roe+dxxqqHvI/2XBmj76jx+u96LHnQddWG7LX8QovPAainSmWQ== dependencies: dom-helpers "^3.3.1" loose-envify "^1.4.0" @@ -5321,6 +6153,7 @@ react-transition-group@^2.0.0, react-transition-group@^2.2.0: react@16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba" + integrity sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ== dependencies: fbjs "^0.8.16" loose-envify "^1.1.0" @@ -5330,6 +6163,7 @@ react@16.2.0: read-chunk@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655" + integrity sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU= dependencies: pify "^3.0.0" safe-buffer "^5.1.1" @@ -5337,6 +6171,7 @@ read-chunk@^2.0.0: read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -5344,6 +6179,7 @@ read-pkg-up@^1.0.1: read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= dependencies: find-up "^2.0.0" read-pkg "^2.0.0" @@ -5351,6 +6187,7 @@ read-pkg-up@^2.0.0: read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -5359,6 +6196,7 @@ read-pkg@^1.0.0: read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" @@ -5367,6 +6205,7 @@ read-pkg@^2.0.0: "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5379,6 +6218,7 @@ read-pkg@^2.0.0: readable-stream@^1.1.8, readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -5388,6 +6228,7 @@ readable-stream@^1.1.8, readable-stream@~1.1.9: readable-stream@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -5399,6 +6240,7 @@ readable-stream@~2.0.6: readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" @@ -5407,6 +6249,7 @@ readdirp@^2.2.1: recast@^0.12.5: version "0.12.9" resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" + integrity sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A== dependencies: ast-types "0.10.1" core-js "^2.4.1" @@ -5417,6 +6260,7 @@ recast@^0.12.5: recast@^0.14.4: version "0.14.7" resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" + integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== dependencies: ast-types "0.11.3" esprima "~4.0.0" @@ -5426,12 +6270,14 @@ recast@^0.14.4: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" @@ -5439,10 +6285,12 @@ redent@^1.0.0: redux-saga@0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724" + integrity sha1-CiMdsKFIkwHdmA9vL4jYztQY9yQ= redux@3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== dependencies: lodash "^4.2.1" lodash-es "^4.2.1" @@ -5452,18 +6300,22 @@ redux@3.7.2: regenerate@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.2: version "0.13.2" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" @@ -5472,12 +6324,14 @@ regenerator-transform@^0.10.0: regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== dependencies: is-equal-shallow "^0.1.3" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" @@ -5485,6 +6339,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" @@ -5493,42 +6348,51 @@ regexpu-core@^2.0.0: regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= request@2.x, request@^2.45.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -5554,14 +6418,17 @@ request@2.x, request@^2.45.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" @@ -5569,12 +6436,14 @@ require-uncached@^1.0.3: resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -5582,30 +6451,36 @@ resolve-dir@^1.0.0: resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.10.0, resolve@^1.5.0, resolve@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== dependencies: path-parse "^1.0.6" responselike@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: exit-hook "^1.0.0" onetime "^1.0.0" @@ -5613,6 +6488,7 @@ restore-cursor@^1.0.1: restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -5620,20 +6496,24 @@ restore-cursor@^2.0.0: ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== rimraf@^2.2.0, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -5641,72 +6521,86 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: run-async@^2.0.0, run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rwlock@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/rwlock/-/rwlock-5.0.0.tgz#888d6a77a3351cc1a209204ef2ee1722093836cf" + integrity sha1-iI1qd6M1HMGiCSBO8u4XIgk4Ns8= rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= rxjs@^5.4.2, rxjs@^5.5.2: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== dependencies: symbol-observable "1.0.1" rxjs@^6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" + integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== dependencies: tslib "^1.9.0" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-filename@^1.6.0: version "1.6.1" resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a" + integrity sha1-YS2hyWRz+gLczaktzVtKsWSmdyo= dependencies: truncate-utf8-bytes "^1.0.0" sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== scheduler@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" + integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5714,6 +6608,7 @@ scheduler@^0.13.6: schema-utils@^0.4.2, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" @@ -5721,32 +6616,39 @@ schema-utils@^0.4.2, schema-utils@^0.4.5: scoped-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" + integrity sha1-o0a7Gs1CB65wvXwMfKnlZra63bg= scroll@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/scroll/-/scroll-2.0.3.tgz#0951b785544205fd17753bc3d294738ba16fc2ab" + integrity sha512-3ncZzf8gUW739h3LeS68nSssO60O+GGjT3SxzgofQmT8PIoyHzebql9HHPJopZX8iT6TKOdwaWFMqL6LzUN3DQ== dependencies: rafl "~1.2.1" seedrandom@2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" + integrity sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw= "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== serialize-javascript@^1.4.0: version "1.6.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" + integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -5756,6 +6658,7 @@ set-value@^0.4.3: set-value@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -5765,10 +6668,12 @@ set-value@^2.0.0: setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -5776,16 +6681,19 @@ sha.js@^2.4.0, sha.js@^2.4.8: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shelljs@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -5794,10 +6702,12 @@ shelljs@^0.7.0: signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= simple-get@^1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb" + integrity sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s= dependencies: once "^1.3.1" unzip-response "^1.0.0" @@ -5806,30 +6716,36 @@ simple-get@^1.4.2: single-line-log@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= dependencies: string-width "^1.0.1" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: is-fullwidth-code-point "^2.0.0" slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= smalltalk@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/smalltalk/-/smalltalk-2.5.1.tgz#488176544010f8a1defd38adb1367a25ac489de2" + integrity sha512-LZYd80hd9DkXBUnm5AyMdMNx9XCxYZZskmrp3W6M77jhOEvzQ9SpDqtvDE7e8y1lfMeIAG9nIFU6Y5quZoXV5g== dependencies: currify "^2.0.3" es6-promise "^4.1.1" @@ -5838,6 +6754,7 @@ smalltalk@2.5.1: snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -5846,12 +6763,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" @@ -5865,6 +6784,7 @@ snapdragon@^0.8.1: socket.io-client@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA== dependencies: backo2 "1.0.2" base64-arraybuffer "0.1.5" @@ -5884,6 +6804,7 @@ socket.io-client@^2.0.4: socket.io-parser@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" debug "~3.1.0" @@ -5892,16 +6813,19 @@ socket.io-parser@~3.3.0: sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: atob "^2.1.1" decode-uri-component "^0.2.0" @@ -5912,24 +6836,29 @@ source-map-resolve@^0.5.0: source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY= dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" @@ -5937,6 +6866,7 @@ spawn-sync@^1.0.15: spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -5944,10 +6874,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -5955,24 +6887,29 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" + integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== speedometer@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= ssh2-streams@~0.1.18: version "0.1.20" resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.1.20.tgz#51118d154555df5469ee1f67e0cf1e7e8a2c0e3a" + integrity sha1-URGNFUVV31Rp7h9n4M8efoosDjo= dependencies: asn1 "~0.2.0" semver "^5.1.0" @@ -5981,12 +6918,14 @@ ssh2-streams@~0.1.18: ssh2@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.5.5.tgz#c7781ecd2ece7304a253cf620fab5a5c22bb2235" + integrity sha1-x3gezS7OcwSiU89iD6taXCK7IjU= dependencies: ssh2-streams "~0.1.18" sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -6001,12 +6940,14 @@ sshpk@^1.7.0: ssri@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== dependencies: safe-buffer "^5.1.1" static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -6014,6 +6955,7 @@ static-extend@^0.1.1: stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" @@ -6021,6 +6963,7 @@ stream-browserify@^2.0.1: stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" @@ -6028,6 +6971,7 @@ stream-each@^1.1.0: stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -6038,28 +6982,34 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= stream-to-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10" + integrity sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA= dependencies: any-observable "^0.2.0" streamsearch@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -6068,6 +7018,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -6075,44 +7026,52 @@ string-width@^1.0.1: string_decoder@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: safe-buffer "~5.1.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= strip-bom-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + integrity sha1-+H217yYT9paKpUWr/h7HKLaoKco= dependencies: first-chunk-stream "^2.0.0" strip-bom "^2.0.0" @@ -6120,36 +7079,43 @@ strip-bom-stream@^2.0.0: strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= sumchecker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" + integrity sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4= dependencies: debug "^2.2.0" superagent@3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.2.tgz#e4a11b9d047f7d3efeb3bbe536d9ec0021d16403" + integrity sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ== dependencies: component-emitter "^1.2.0" cookiejar "^2.1.0" @@ -6165,34 +7131,41 @@ superagent@3.8.2: supports-color@4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ== dependencies: has-flag "^2.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.2.0, supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= symbol-observable@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" + integrity sha1-lag9smGG1q9+ehjb2XYKL4bQj0A= symbol-observable@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== table@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== dependencies: ajv "^6.0.1" ajv-keywords "^3.0.0" @@ -6204,10 +7177,12 @@ table@^4.0.1: tapable@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" + integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== tar-fs@^1.13.0: version "1.16.3" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" @@ -6217,6 +7192,7 @@ tar-fs@^1.13.0: tar-stream@^1.1.2: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" buffer-alloc "^1.2.0" @@ -6229,6 +7205,7 @@ tar-stream@^1.1.2: tar@^4: version "4.4.8" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" @@ -6241,6 +7218,7 @@ tar@^4: teeny-request@^3.7.0: version "3.11.3" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" + integrity sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw== dependencies: https-proxy-agent "^2.2.1" node-fetch "^2.2.0" @@ -6249,6 +7227,7 @@ teeny-request@^3.7.0: temp@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k= dependencies: os-tmpdir "^1.0.0" rimraf "~2.2.6" @@ -6256,30 +7235,36 @@ temp@^0.8.1: text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= textextensions@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.4.0.tgz#6a143a985464384cc2cff11aea448cd5b018e72b" + integrity sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA== thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= dependencies: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": version "3.3.0" resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= dependencies: any-promise "^1.0.0" throttleit@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" @@ -6287,6 +7272,7 @@ through2@^2.0.0: through2@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= dependencies: readable-stream "~1.1.9" xtend "~2.1.1" @@ -6294,60 +7280,72 @@ through2@~0.2.3: through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" tmp@0.0.28: version "0.0.28" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + integrity sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA= dependencies: os-tmpdir "~1.0.1" tmp@^0.0.29: version "0.0.29" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" + integrity sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA= dependencies: os-tmpdir "~1.0.1" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -6355,6 +7353,7 @@ to-regex-range@^2.1.0: to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -6364,12 +7363,14 @@ to-regex@^3.0.1, to-regex@^3.0.2: touch@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d" + integrity sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0= dependencies: nopt "~1.0.10" tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: psl "^1.1.24" punycode "^1.4.1" @@ -6377,60 +7378,73 @@ tough-cookie@~2.4.3: "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= dependencies: utf8-byte-length "^1.0.1" tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-detect@^4.0.0: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: version "0.7.19" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" + integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== uglify-es@^3.3.4: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== dependencies: commander "~2.13.0" source-map "~0.6.1" @@ -6438,6 +7452,7 @@ uglify-es@^3.3.4: uglifyjs-webpack-plugin@^1.1.1, uglifyjs-webpack-plugin@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" + integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw== dependencies: cacache "^10.0.4" find-cache-dir "^1.0.0" @@ -6451,20 +7466,24 @@ uglifyjs-webpack-plugin@^1.1.1, uglifyjs-webpack-plugin@^1.2.2: ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== uncontrollable@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-4.1.0.tgz#e0358291252e1865222d90939b19f2f49f81c1a9" + integrity sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak= dependencies: invariant "^2.1.0" underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= dependencies: arr-union "^3.1.0" get-value "^2.0.6" @@ -6474,22 +7493,26 @@ union-value@^1.0.0: unique-filename@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== dependencies: imurmurhash "^0.1.4" universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -6497,50 +7520,60 @@ unset-value@^1.0.0: untildify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" + integrity sha1-F+soB5h/dpUunASF/DEdBqgmouA= dependencies: os-homedir "^1.0.0" untildify@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" + integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== unzip-response@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + integrity sha1-uYTwh3/AqJwsdzzB73tbIytbBv4= upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= dependencies: prepend-http "^1.0.1" url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" @@ -6548,14 +7581,17 @@ url@^0.11.0: urlgrey@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== utf-8-validate@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-4.0.0.tgz#93812f447b6fd11a3dad4302d5870830cae8470a" + integrity sha512-JS/c6nR/qauqSdvTksgDO1142kYddTXz42y5X/he188B/kgcFLLB4l9CfZd+hGic/ORgsL+pPfwr9lYsL/80Fw== dependencies: bindings "~1.3.0" nan "~2.8.0" @@ -6564,34 +7600,41 @@ utf-8-validate@4.0.0: utf8-byte-length@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== v8-compile-cache@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" + integrity sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA== validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -6599,6 +7642,7 @@ validate-npm-package-license@^3.0.1: verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -6607,6 +7651,7 @@ verror@1.10.0: vinyl-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" + integrity sha1-p+v1/779obfRjRQPyweyI++2dRo= dependencies: graceful-fs "^4.1.2" pify "^2.3.0" @@ -6618,6 +7663,7 @@ vinyl-file@^2.0.0: vinyl@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= dependencies: clone "^1.0.0" clone-stats "^0.0.1" @@ -6626,6 +7672,7 @@ vinyl@^1.1.0: vinyl@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== dependencies: clone "^2.1.1" clone-buffer "^1.0.0" @@ -6637,18 +7684,21 @@ vinyl@^2.0.1: vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= dependencies: indexof "0.0.1" warning@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= dependencies: loose-envify "^1.0.0" watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" @@ -6657,12 +7707,14 @@ watchpack@^1.5.0: webpack-addons@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a" + integrity sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g== dependencies: jscodeshift "^0.4.0" webpack-cli@2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.0.10.tgz#09b888fbaa0b4288ba4b94c4462b6f559dfcf51e" + integrity sha512-PQWEOoXkhjBV4svPuESghZRc80VvDoSSRPaLiInWifDlRJgoPWpiLCFXyMLQTTaug7ApLrSEW7BcuwwY6DEv5w== dependencies: chalk "^2.3.1" codecov "^3.0.0" @@ -6697,6 +7749,7 @@ webpack-cli@2.0.10: webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -6704,6 +7757,7 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0: webpack@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.1.0.tgz#91b6862e56eb3b18b79bb10b51866987ff10d2d6" + integrity sha512-ZFYcAZ44kOT+xsS5MS2H1fQr0PJkwQdYem/d17wacDkkupzsAkBJ3hDShWHdPVvWluFs6pfhHWw/dVso1m0rsA== dependencies: acorn "^5.0.0" acorn-dynamic-import "^3.0.0" @@ -6728,36 +7782,43 @@ webpack@4.1.0: whatwg-fetch@>=0.10.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== dependencies: errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -6765,10 +7826,12 @@ wrap-ansi@^2.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^1.2.0: version "1.3.4" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -6777,12 +7840,14 @@ write-file-atomic@^1.2.0: write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" ws@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.0.0.tgz#bfe1da4c08eeb9780b986e0e4d10eccd7345999f" + integrity sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ== dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" @@ -6791,66 +7856,80 @@ ws@4.0.0: ws@~6.1.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" xmlbuilder@8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + integrity sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M= xmlbuilder@^9.0.7: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= xmldom@0.1.x: version "0.1.27" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= xtend@4.0.1, xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= xtend@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= dependencies: object-keys "~0.4.0" y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= dependencies: camelcase "^4.1.0" yargs-parser@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== dependencies: camelcase "^4.1.0" yargs@9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w= dependencies: camelcase "^4.1.0" cliui "^3.2.0" @@ -6869,28 +7948,33 @@ yargs@9.0.1: yargs@~1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" + integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= dependencies: minimist "^0.1.0" yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= dependencies: fd-slicer "~1.0.1" yazl@^2.4.3: version "2.5.1" resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== dependencies: buffer-crc32 "~0.2.3" yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= yeoman-environment@^1.1.0: version "1.6.6" resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-1.6.6.tgz#cd85fa67d156060e440d7807d7ef7cf0d2d1d671" + integrity sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE= dependencies: chalk "^1.0.0" debug "^2.0.0" @@ -6908,6 +7992,7 @@ yeoman-environment@^1.1.0: yeoman-environment@^2.0.0: version "2.3.4" resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.3.4.tgz#ae156147a1b85de939366e5438b00cb3eb54c3e9" + integrity sha512-KLxE5ft/74Qj7h3AsQZv8G6MEEHYJwmD5F99nfOVaep3rBzCtbrJKkdqWc7bDV141Nr8UZZsIXmzc3IcCm6E2w== dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" @@ -6958,6 +8043,7 @@ yeoman-environment@^2.0.0: zip-webpack-plugin@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/zip-webpack-plugin/-/zip-webpack-plugin-3.0.0.tgz#63b3c173f1a87a006915cd7328a3c40b44dc8e32" + integrity sha512-5kNvPv+TUP3JqKWQUXj0vTgXHIRQpYw5YyBUVXQ0pumTAK+a4OZ+eXDHnh44nyr9B1XJQZq9WtSSm5j6NQhjWQ== dependencies: webpack-sources "^1.1.0" yazl "^2.4.3" diff --git a/runtime/Makefile b/runtime/Makefile index 0f884af8..f693ae14 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -10,7 +10,7 @@ artifacts-install: $(nop) lint: - pylint --load-plugins=$(shell pwd)/lints ansible.py runtime.py statemanager.py studentapi.py runtimeUtil.py fakedawn.py hibikesimulator.py + pylint ansible.py runtime.py statemanager.py studentapi.py runtimeUtil.py fakedawn.py hibikesimulator.py test: cd ../DevOps/frankfurter/scripts/update && ./create_update -p diff --git a/runtime/Pipfile b/runtime/Pipfile index 68886ec2..654a3605 100644 --- a/runtime/Pipfile +++ b/runtime/Pipfile @@ -14,6 +14,7 @@ aioprocessing = "*" pyserial-asyncio = "*" aiofiles = "*" cobs = "*" +aio_msgpack_rpc = "*" [dev-packages] pylint = "==1.8.1" diff --git a/runtime/Pipfile.lock b/runtime/Pipfile.lock index b699c00d..f551ee39 100644 --- a/runtime/Pipfile.lock +++ b/runtime/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "b26c903fdded7f0e7f878a5576e12bea0f8f28abc8389bd7b81195d1062e56a2" + "sha256": "a0d340349df0c043be7c66e0f67da82f854514b212133150e1ac11f8be518b98" }, "pipfile-spec": 6, "requires": { @@ -15,6 +15,13 @@ ] }, "default": { + "aio-msgpack-rpc": { + "hashes": [ + "sha256:5215fa1d8057a02de06dd15cd063ccd92214160ad4354b3d07f6f45ce43dc9cc", + "sha256:7ab272f9b4724f953cdacfee4fb8780d246a718963226bbd86072a4913877d79" + ], + "version": "==0.1.0" + }, "aiofiles": { "hashes": [ "sha256:021ea0ba314a86027c166ecc4b4c07f2d40fc0f4b3a950d1868a0f2571c2bbee", @@ -96,6 +103,28 @@ ], "version": "==1.1.1" }, + "msgpack": { + "hashes": [ + "sha256:26cb40116111c232bc235ce131cc3b4e76549088cb154e66a2eb8ff6fcc907ec", + "sha256:300fd3f2c664a3bf473d6a952f843b4a71454f4c592ed7e74a36b205c1782d28", + "sha256:3129c355342853007de4a2a86e75eab966119733eb15748819b6554363d4e85c", + "sha256:31f6d645ee5a97d59d3263fab9e6be76f69fa131cddc0d94091a3c8aca30d67a", + "sha256:3ce7ef7ee2546c3903ca8c934d09250531b80c6127e6478781ae31ed835aac4c", + "sha256:4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972", + "sha256:62bd8e43d204580308d477a157b78d3fee2fb4c15d32578108dc5d89866036c8", + "sha256:70cebfe08fb32f83051971264466eadf183101e335d8107b80002e632f425511", + "sha256:72cb7cf85e9df5251abd7b61a1af1fb77add15f40fa7328e924a9c0b6bc7a533", + "sha256:7c55649965c35eb32c499d17dadfb8f53358b961582846e1bc06f66b9bccc556", + "sha256:86b963a5de11336ec26bc4f839327673c9796b398b9f1fe6bb6150c2a5d00f0f", + "sha256:8c73c9bcdfb526247c5e4f4f6cf581b9bb86b388df82cfcaffde0a6e7bf3b43a", + "sha256:8e68c76c6aff4849089962d25346d6784d38e02baa23ffa513cf46be72e3a540", + "sha256:97ac6b867a8f63debc64f44efdc695109d541ecc361ee2dce2c8884ab37360a1", + "sha256:9d4f546af72aa001241d74a79caec278bcc007b4bcde4099994732e98012c858", + "sha256:a28e69fe5468c9f5251c7e4e7232286d71b7dfadc74f312006ebe984433e9746", + "sha256:fd509d4aa95404ce8d86b4e32ce66d5d706fd6646c205e1c2a715d87078683a2" + ], + "version": "==0.6.1" + }, "protobuf": { "hashes": [ "sha256:3c1e93adccb6df731b003993e1f094221a18694cb767f9a31fa41cc8965c1f80", @@ -131,10 +160,10 @@ }, "werkzeug": { "hashes": [ - "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c", - "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b" + "sha256:0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a", + "sha256:7fad9770a8778f9576693f0cc29c7dcc36964df916b83734f4431c0e612a7fbc" ], - "version": "==0.14.1" + "version": "==0.15.2" } }, "develop": { @@ -147,10 +176,10 @@ }, "isort": { "hashes": [ - "sha256:38a74a5ccf3a15a7a99f975071164f48d4d10eed4154879009c18e6e8933e5aa", - "sha256:abbb2684aa234d5eb8a67ef36d4aa62ea080d46c2eba36ad09e2990ae52e4305" + "sha256:08f8e3f0f0b7249e9fad7e5c41e2113aba44969798a26452ee790c06f155d4ec", + "sha256:4e9e9c4bd1acd66cf6c36973f29b031ec752cbfd991c69695e4e259f9a756927" ], - "version": "==4.3.13" + "version": "==4.3.16" }, "lazy-object-proxy": { "hashes": [ diff --git a/runtime/ansible.py b/runtime/ansible.py index 66408945..593dc6b6 100644 --- a/runtime/ansible.py +++ b/runtime/ansible.py @@ -1,11 +1,13 @@ """Functions and classes for communication with Dawn.""" +import asyncio import socket import threading import time import sys import selectors import csv +import aio_msgpack_rpc as rpc import runtime_pb2 import ansible_pb2 import notification_pb2 @@ -484,14 +486,6 @@ def unpackage(data): continue if unpackaged_data.header == notification_pb2.Notification.STUDENT_SENT: state_queue.put([SM_COMMANDS.STUDENT_UPLOAD, []]) - if unpackaged_data.header == notification_pb2.Notification.GAMECODE_TRANSMISSION: - state_queue.put([SM_COMMANDS.SET_VAL, - [list(unpackaged_data.gamecode_solutions), - ["gamecodes_check"], False]]) - state_queue.put([SM_COMMANDS.SET_VAL, - [list(unpackaged_data.gamecodes), ["gamecodes"], False]]) - state_queue.put([SM_COMMANDS.SET_VAL, - [list(unpackaged_data.rfids), ["rfids"], False]]) except ConnectionResetError: bad_things_queue.put( @@ -508,3 +502,96 @@ def unpackage(data): str(e), event=BAD_EVENTS.TCP_ERROR, printStackTrace=True)) + + +def load_coding_challenges(): + try: + import studentCode as student_code + except: + return [] + + def stub_out(funcname): + def stub(_): + if hasattr(student_code, 'print'): + # pylint: disable=no-member + student_code.print(f'"{funcname}" not defined.' + 'Unable to run the coding challenge.') + return None + return stub + + def get_or_stub_out(funcname): + try: + return getattr(student_code, funcname) + except AttributeError: + return stub_out(funcname) + + return [ + get_or_stub_out('tennis_ball'), + get_or_stub_out('remove_duplicates'), + get_or_stub_out('rotate'), + get_or_stub_out('next_fib'), + get_or_stub_out('most_common'), + get_or_stub_out('get_coins'), + ], getattr(student_code, 'print', lambda *args, **kwargs: None) + + +# pylint: disable=invalid-name,global-statement +solution = None + + +class FieldControlServer: + def __init__(self, state_queue): + self.state_queue = state_queue + self.access = asyncio.Lock() + + def set_alliance(self, alliance: str): + self.state_queue.put([SM_COMMANDS.SET_TEAM, [alliance]]) + + def set_starting_zone(self, zone: str): + pass # self.state_queue.put([SM_COMMANDS.SET_VAL, [zone, ['starting_zone']]]) + + def set_mode(self, mode: str): + modes = { + 'idle': SM_COMMANDS.ENTER_IDLE, + 'auto': SM_COMMANDS.ENTER_AUTO, + 'teleop': SM_COMMANDS.ENTER_TELEOP, + 'estop': SM_COMMANDS.EMERGENCY_STOP, + } + self.state_queue.put([modes[mode], []]) + + def set_master(self, master: bool): + pass # self.state_queue.put([SM_COMMANDS.SET_VAL, [master, ['master']]]) + + async def run_challenge_blocking(self, seed, timeout=1): + async with self.access: + coding_challenges, _print = load_coding_challenges() + try: + async def chain(): + global solution + solution = seed + for challenge in coding_challenges: + try: + solution = challenge(solution) + except Exception: + return + await asyncio.wait_for(chain(), timeout) + except asyncio.TimeoutError: + global solution + solution = None + + def run_challenge(self, seed, timeout=1): + asyncio.ensure_future(self.run_challenge_blocking(seed, timeout)) + + async def get_challenge_solution(self): + async with self.access: + return solution + + +async def run_field_control_server(server, host, port): + try: + server = await asyncio.start_server(rpc.Server(server), host=host, port=port) + async with server: + print('Starting field control server.') + await server.serve_forever() + except asyncio.CancelledError: + print('Gracefully shutting down field control server.') diff --git a/runtime/disable_CPUs.sh b/runtime/disable_CPUs.sh deleted file mode 100755 index 2b33c1dd..00000000 --- a/runtime/disable_CPUs.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#ask for root access -[ "$(whoami)" != "root" ] && exec sudo -- "$0" "$@" - -for x in /sys/devices/system/cpu/cpu*/online; do - echo 0 >"$x"; -done -echo "DONE" diff --git a/runtime/enable_CPUs.sh b/runtime/enable_CPUs.sh deleted file mode 100755 index c52a9cc9..00000000 --- a/runtime/enable_CPUs.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#ask for root access -[ "$(whoami)" != "root" ] && exec sudo -- "$0" "$@" - -for x in /sys/devices/system/cpu/cpu*/online; do - echo 1 >"$x"; -done -echo "DONE" diff --git a/runtime/fetchartifacts b/runtime/fetchartifacts deleted file mode 100644 index e3cb91a0..00000000 --- a/runtime/fetchartifacts +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -wget "https://github.com/pioneers/PieCentral" diff --git a/runtime/fieldcontrol_pb2.py b/runtime/fieldcontrol_pb2.py deleted file mode 100644 index a051a907..00000000 --- a/runtime/fieldcontrol_pb2.py +++ /dev/null @@ -1,214 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: fieldcontrol.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='fieldcontrol.proto', - package='', - syntax='proto3', - serialized_pb=_b('\n\x12\x66ieldcontrol.proto\"\xfc\x01\n\x12\x46ieldControlToDawn\x12\x31\n\nteam_color\x18\x01 \x01(\x0e\x32\x1d.FieldControlToDawn.TeamColor\x12\x42\n\x13student_code_status\x18\x02 \x01(\x0e\x32%.FieldControlToDawn.StudentCodeStatus\")\n\tTeamColor\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04\x42LUE\x10\x01\x12\x08\n\x04GOLD\x10\x02\"D\n\x11StudentCodeStatus\x12\x08\n\x04IDLE\x10\x00\x12\n\n\x06TELEOP\x10\x01\x12\x0e\n\nAUTONOMOUS\x10\x02\x12\t\n\x05\x45STOP\x10\x03\"\x9a\x01\n\x12\x44\x61wnToFieldControl\x12\x33\n\x0b\x64\x61wn_status\x18\x01 \x01(\x0e\x32\x1e.DawnToFieldControl.DawnStatus\"O\n\nDawnStatus\x12\x16\n\x12STUDENT_DISCONNECT\x10\x00\x12\x08\n\x04IDLE\x10\x01\x12\n\n\x06TELEOP\x10\x02\x12\x08\n\x04\x41UTO\x10\x03\x12\t\n\x05\x45STOP\x10\x04\x62\x06proto3') -) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - - -_FIELDCONTROLTODAWN_TEAMCOLOR = _descriptor.EnumDescriptor( - name='TeamColor', - full_name='FieldControlToDawn.TeamColor', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='NONE', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='BLUE', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GOLD', index=2, number=2, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=164, - serialized_end=205, -) -_sym_db.RegisterEnumDescriptor(_FIELDCONTROLTODAWN_TEAMCOLOR) - -_FIELDCONTROLTODAWN_STUDENTCODESTATUS = _descriptor.EnumDescriptor( - name='StudentCodeStatus', - full_name='FieldControlToDawn.StudentCodeStatus', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='IDLE', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TELEOP', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AUTONOMOUS', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ESTOP', index=3, number=3, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=207, - serialized_end=275, -) -_sym_db.RegisterEnumDescriptor(_FIELDCONTROLTODAWN_STUDENTCODESTATUS) - -_DAWNTOFIELDCONTROL_DAWNSTATUS = _descriptor.EnumDescriptor( - name='DawnStatus', - full_name='DawnToFieldControl.DawnStatus', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='STUDENT_DISCONNECT', index=0, number=0, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='IDLE', index=1, number=1, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TELEOP', index=2, number=2, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AUTO', index=3, number=3, - options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ESTOP', index=4, number=4, - options=None, - type=None), - ], - containing_type=None, - options=None, - serialized_start=353, - serialized_end=432, -) -_sym_db.RegisterEnumDescriptor(_DAWNTOFIELDCONTROL_DAWNSTATUS) - - -_FIELDCONTROLTODAWN = _descriptor.Descriptor( - name='FieldControlToDawn', - full_name='FieldControlToDawn', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='team_color', full_name='FieldControlToDawn.team_color', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='student_code_status', full_name='FieldControlToDawn.student_code_status', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _FIELDCONTROLTODAWN_TEAMCOLOR, - _FIELDCONTROLTODAWN_STUDENTCODESTATUS, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=23, - serialized_end=275, -) - - -_DAWNTOFIELDCONTROL = _descriptor.Descriptor( - name='DawnToFieldControl', - full_name='DawnToFieldControl', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='dawn_status', full_name='DawnToFieldControl.dawn_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _DAWNTOFIELDCONTROL_DAWNSTATUS, - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=278, - serialized_end=432, -) - -_FIELDCONTROLTODAWN.fields_by_name['team_color'].enum_type = _FIELDCONTROLTODAWN_TEAMCOLOR -_FIELDCONTROLTODAWN.fields_by_name['student_code_status'].enum_type = _FIELDCONTROLTODAWN_STUDENTCODESTATUS -_FIELDCONTROLTODAWN_TEAMCOLOR.containing_type = _FIELDCONTROLTODAWN -_FIELDCONTROLTODAWN_STUDENTCODESTATUS.containing_type = _FIELDCONTROLTODAWN -_DAWNTOFIELDCONTROL.fields_by_name['dawn_status'].enum_type = _DAWNTOFIELDCONTROL_DAWNSTATUS -_DAWNTOFIELDCONTROL_DAWNSTATUS.containing_type = _DAWNTOFIELDCONTROL -DESCRIPTOR.message_types_by_name['FieldControlToDawn'] = _FIELDCONTROLTODAWN -DESCRIPTOR.message_types_by_name['DawnToFieldControl'] = _DAWNTOFIELDCONTROL - -FieldControlToDawn = _reflection.GeneratedProtocolMessageType('FieldControlToDawn', (_message.Message,), dict( - DESCRIPTOR = _FIELDCONTROLTODAWN, - __module__ = 'fieldcontrol_pb2' - # @@protoc_insertion_point(class_scope:FieldControlToDawn) - )) -_sym_db.RegisterMessage(FieldControlToDawn) - -DawnToFieldControl = _reflection.GeneratedProtocolMessageType('DawnToFieldControl', (_message.Message,), dict( - DESCRIPTOR = _DAWNTOFIELDCONTROL, - __module__ = 'fieldcontrol_pb2' - # @@protoc_insertion_point(class_scope:DawnToFieldControl) - )) -_sym_db.RegisterMessage(DawnToFieldControl) - - -# @@protoc_insertion_point(module_scope) diff --git a/runtime/runtime.py b/runtime/runtime.py index 30575bfc..92a63d5f 100644 --- a/runtime/runtime.py +++ b/runtime/runtime.py @@ -7,10 +7,17 @@ import re import signal import sys +import threading import traceback import warnings -from ansible import TCPClass, UDPRecvClass, UDPSendClass +from ansible import ( + TCPClass, + UDPRecvClass, + UDPSendClass, + FieldControlServer, + run_field_control_server, +) import runtime_pb2 from runtimeUtil import ( BAD_EVENTS, @@ -23,7 +30,7 @@ StudentAPIError, ) from statemanager import StateManager -from studentapi import Actions, Gamepad, Robot +from studentapi import Actions, Gamepad, Field, Robot COROUTINE_WARNING = """ The PiE API has upgraded the above RuntimeWarning to a runtime error! @@ -64,7 +71,7 @@ def print_version(): print('.'.join([str(n.value) for n in version_numbers])) -# pylint: disable=too-many-branches +# pylint: disable=too-many-branches,too-many-locals def runtime(test_name=""): # pylint: disable=too-many-statements test_mode = test_name != "" max_iter = 3 if test_mode else None @@ -84,6 +91,14 @@ def non_test_mode_print(*args): spawn_process(PROCESS_NAMES.STATE_MANAGER, start_state_manager) spawn_process(PROCESS_NAMES.UDP_RECEIVE_PROCESS, start_udp_receiver) spawn_process(PROCESS_NAMES.HIBIKE, start_hibike) + + def fc_server_target(): + fc_server = FieldControlServer(state_queue) + # pylint: disable=no-member + asyncio.run(run_field_control_server(fc_server, '0.0.0.0', 6020)) + + fc_thread = threading.Thread(target=fc_server_target, daemon=True) + fc_thread.start() control_state = "idle" dawn_connected = False @@ -162,7 +177,8 @@ def non_test_mode_print(*args): print("".join(traceback.format_tb(sys.exc_info()[2]))) -def run_student_code(bad_things_queue, state_queue, pipe, test_name="", max_iter=None): # pylint: disable=too-many-locals +# pylint: disable=too-many-locals +def run_student_code(bad_things_queue, state_queue, pipe, test_name="", max_iter=None): try: terminated = False @@ -204,64 +220,9 @@ def check_timed_out(func, *args): ensure_is_function(test_name + "main", main_fn) ensure_not_overridden(studentCode, "Robot") - # Solar Scramble specific handling - def stub_out(funcname): - def stub(_): - line1 = "Failed to generate power-up code: " - line2 = "you haven't defined {}".format(funcname) - raise AttributeError(line1 + line2) - return stub - - def get_or_stub_out(funcname): - try: - return getattr(studentCode, funcname) - except AttributeError: - return stub_out(funcname) - - def identity(value): - ''' - Used only in the (hopefully) rare event that none of the other - functions are bijections with a given domain of RFIDs - ''' - return value - - def limit_input_to(limit): - '''Generate a function to limit size of inputs''' - def retval(input_val): - while input_val > limit: - input_val = (input_val % limit) + (input_val // limit) - return input_val - return retval - - def compose_funcs(func_a, func_b): - ''' - Composes two single-input functions together, A(B(x)) - ''' - return lambda x: func_a(func_b(x)) - - next_power = get_or_stub_out("next_power") - reverse_digits = get_or_stub_out("reverse_digits") - smallest_prime_fact = get_or_stub_out("smallest_prime_fact") - double_caesar_cipher = get_or_stub_out("double_caesar_cipher") - silly_base_two = get_or_stub_out("silly_base_two") - most_common_digit = get_or_stub_out("most_common_digit") - valid_isbn_ten = get_or_stub_out("valid_isbn_ten") - simd_four_square = get_or_stub_out("simd_four_square") - - func_map = [ - identity, - next_power, - reverse_digits, - compose_funcs(smallest_prime_fact, limit_input_to(1000000)), - double_caesar_cipher, - silly_base_two, - most_common_digit, - valid_isbn_ten, - simd_four_square - ] - - studentCode.Robot = Robot(state_queue, pipe, func_map) + studentCode.Robot = Robot(state_queue, pipe) studentCode.Gamepad = Gamepad(state_queue, pipe) + studentCode.Field = Field(state_queue, pipe) studentCode.Actions = Actions studentCode.print = studentCode.Robot._print # pylint: disable=protected-access @@ -274,7 +235,6 @@ def compose_funcs(func_a, func_b): studentCode.sleep_duration = studentCode.Actions.sleep check_timed_out(setup_fn) - exception_cell = [None] clarify_coroutine_warnings(exception_cell) diff --git a/runtime/runtimeUtil.py b/runtime/runtimeUtil.py index bdacfd73..a5e28283 100644 --- a/runtime/runtimeUtil.py +++ b/runtime/runtimeUtil.py @@ -7,7 +7,7 @@ import os import json -__version__ = (1, 3, 1) +__version__ = (1, 4, 0) class AutoIntEnum(IntEnum): diff --git a/runtime/statemanager.py b/runtime/statemanager.py index fc8aa794..73a32441 100644 --- a/runtime/statemanager.py +++ b/runtime/statemanager.py @@ -121,10 +121,8 @@ def init_robot_state(self): "gamepads": [{0: {"axes": {0: 0.5, 1: -0.5, 2: 1, 3: -1}, "buttons": {0: True, 1: False, 2: True, 3: False, 4: True}}}, t], "team_flag_uid": [None, t], - # Solar Scramble Keys - "gamecodes": [[64314, 64314, 64314, 64314, 64314, 64314], t], - "gamecodes_check": [[1543, 3215, 2551, 5354, 1152, 2222], t], - "rfids": [[6, 1, 3, 5, 2, 4], t], + 'starting_zone': ['unknown', t], + 'master': [False, t], } def add_pipe(self, process_name, pipe): diff --git a/runtime/studentCode.py b/runtime/studentCode.py index 515bcd63..1e8d817e 100644 --- a/runtime/studentCode.py +++ b/runtime/studentCode.py @@ -1,316 +1,255 @@ -import time -import asyncio -from runtimeUtil import * +right_motor = "47257694863303572622996" +left_motor = "56692491028743135592595" +servo_controller = "33083708407374743778514" +rfid_sensor = "51967350706562744010830" +wrist_servo = "servo0" +elbow_servo = "servo1" +HIGH_FIVE_START_ANGLE = .8 +HIGH_FIVE_BACK_ANGLE = -1 -def autonomous_setup(): - pass +# Joystick input values less than this will be rounded to 0 +JOYSTICK_DEAD_ZONE = .15 +import math + +def autonomous_setup(): + print("Autonomous mode has started!") def autonomous_main(): pass -def teleop_setup(): - pass +async def autonomous_actions(): + print("Autonomous action sequence started") + await Actions.sleep(1.0) + print("1 second has passed in autonomous mode") +def teleop_setup(): + print("Tele-operated mode has started!") + set_elbow_servo(HIGH_FIVE_START_ANGLE) def teleop_main(): - pass - - -def setup(): - pass - - -def main(): - pass - - -def asyncawait_setup(): - Robot.create_key("right") - Robot.create_key("counter") - Robot._set_sm_value(3.0, "right") - Robot._set_sm_value(0.0, "counter") - Robot.run(asyncawait_helper) - - -def asyncawait_main(): - Robot._set_sm_value(Robot._get_sm_value("counter") + 1, "counter") - if Robot._get_sm_value("right") == 4 and Robot._get_sm_value("counter") == 3: - print("Async Success") - - -async def asyncawait_helper(): - Robot._set_sm_value(Robot._get_sm_value("right") + 1, "right") - - -def test0_setup(): - print("test0_setup") - - -def test0_main(): - print("test0_main") - - -def mainTest_setup(): - pass - - -def mainTest_main(): - response = Robot._get_sm_value("incrementer") - print("Get Info:", response) - response -= 1 - - Robot._set_sm_value(response, "incrementer") - - print("Saying hello to the other side") - print("DAT:", 1.0 / response) - - -async def sleepDurationHelper(): - await sleep_duration(1) - -def sleepDuration_setup(): - print("Doing sleep test") - run_async(sleepDurationHelper) - print(is_robot_running(sleepDurationHelper)) - -def sleepDuration_main(): - pass - - -def newAPI_setup(): - print("running test") - print(get_gamepad_value("button_a")) - print(get_gamepad_value("joystick_left_x")) - -def newAPI_main(): - pass - -def nestedDict_setup(): - pass - - -def nestedDict_main(): - print("CODE LOOP") - response = Robot._get_sm_value("dict1", "inner_dict1_int") - print("Get Info:", response) - - response = 1 - Robot._set_sm_value(response, "dict1", "inner_dict1_int") - response = Robot._get_sm_value("dict1", "inner_dict1_int") - print("Get Info2:", response) - - -def studentCodeMainCount_setup(): - pass - - -def studentCodeMainCount_main(): - print(Robot._get_sm_value("runtime_meta", "studentCode_main_count")) - - -def createKey_setup(): - Robot.create_key("Restarts") - Robot._set_sm_value(0, "Restarts") - if Robot._get_sm_value("Restarts") != 0: - print("Either getValue or setValue is not working correctly") - pass - - -def createKey_main(): - Robot.create_key("Restarts") - if Robot._get_sm_value("Restarts") == 0: - try: - print("Making sure setValue can't create new key") - Robot._set_sm_value(707, "Klefki") - except StudentAPIKeyError: - print("Success!") + deadzone = lambda val : val if abs(val) > JOYSTICK_DEAD_ZONE else 0 + left_joystick = deadzone(Gamepad.get_value("joystick_left_y")) + right_joystick = deadzone(Gamepad.get_value("joystick_right_y")) + bound = lambda x : max(-1, min( 1, x)) + left_motor_power = left_joystick + right_motor_power = right_joystick + set_right_motor(right_motor_power) + set_left_motor(left_motor_power) + if Gamepad.get_value("l_bumper"): + Robot.run(wave) + if Gamepad.get_value("r_bumper"): + Robot.run(high_five) + if Gamepad.get_value("r_trigger"): + reset_elbow() + if (Robot.get_value(rfid_sensor, "tag_detect")): + if (Robot.get_value(rfid_sensor, "id") % 100 == 25): + Robot.run(wave) else: - print("ERROR: setValue can create keys :(") - - print("Creating key 'Klefki' and setting to value 707") - Robot.create_key("Klefki") - Robot._set_sm_value(707, "Klefki") - print("Success!") - - print("Creating nested keys") - Robot.create_key("Mankey", "EVOLUTION") - Robot._set_sm_value("Primeape", "Mankey", "EVOLUTION") - print("Success!") - restarts = Robot._get_sm_value("Restarts") - Robot._set_sm_value(restarts + 1, "Restarts") - - -def timestamp_setup(): - pass - - -def timestamp_main(): - path = ["dict1", "inner_dict_1_string"] - - print("Getting timestamp") - initialTime = Robot.get_timestamp(*path) - print("Success!") - - print("Setting timestamp") - Robot._set_sm_value("bye", *path) - print("Success!") - - print("Getting new timestamp") - newTime = Robot.get_timestamp(*path) - if newTime > initialTime and time.time() - newTime < 1: - print("Success!") - else: - print("Timestamp did not update correctly") - - print("Testing nested timestamps") - if newTime == Robot.get_timestamp(*path[:-1]): - print("Success!") - else: - print("Nested timestamps did not update correctly") - - -def infiniteSetupLoop_setup(): - print("setup") - while True: - time.sleep(.1) - - -def infiniteSetupLoop_main(): - print("main") - - -def infiniteMainLoop_setup(): - print("setup") - - -def infiniteMainLoop_main(): - print("main") - while True: - time.sleep(.1) - - -def optionalhibikeSensorMappings_setup(): - pass - - -def optionalhibikeSensorMappings_main(): - print(Robot._hibike_get_uid('zero')) - print(Robot._hibike_get_uid('one')) - print(Robot._hibike_get_uid('two')) - print(Robot._hibike_get_uid('three')) - - -def gamepadGetVal_setup(): - pass - - -def gamepadGetVal_main(): - print("running test") - print(Gamepad.get_value("button_a")) - print(Gamepad.get_value("joystick_left_x")) - - -def asyncIsRunning_setup(): - pass - - -def asyncIsRunning_main(): - Robot.run(asyncIsRunningHelper) - print(Robot.is_running(asyncIsRunningHelper)) - - -async def asyncIsRunningHelper(): + Robot.run(high_five) + +def set_left_motor(power): + """Sets the power of the left motor""" + Robot.set_value(left_motor, "duty_cycle", -1 *power) + +def set_right_motor(power): + """Sets the power of the right motor""" + Robot.set_value(right_motor, "duty_cycle", 1 * power) + +def set_wrist_servo(angle): + Robot.set_value(servo_controller, wrist_servo, angle) + +def set_elbow_servo(angle): + Robot.set_value(servo_controller, elbow_servo, angle) + +def reset_elbow(): + Robot.set_value(servo_controller, elbow_servo, HIGH_FIVE_START_ANGLE) + +async def wave(): + set_wrist_servo(0) + for _ in range(3): + set_wrist_servo(-1) + await Actions.sleep(.5) + set_wrist_servo(1) + await Actions.sleep(.5) + set_wrist_servo(0) + + +async def high_five(): + set_elbow_servo(HIGH_FIVE_START_ANGLE) + await Actions.sleep(.75) + set_elbow_servo(HIGH_FIVE_BACK_ANGLE) + await Actions.sleep(.75) + set_elbow_servo(HIGH_FIVE_START_ANGLE) + print("resetting elbow servo") await Actions.sleep(1) - -def optionalapiGetVal_setup(): - Robot.create_key("hibike", "devices", 47223664828696452136960, "duty_cycle") - Robot._set_sm_value(0.5, "hibike", "devices", - 47223664828696452136960, "duty_cycle") - - -def optionalapiGetVal_main(): - print(Robot.get_value("motor1", "duty_cycle")) - - -def optionalTestsDisabled_setup(): - assert False, "This optional test should never be run" - - -def optionalTestsDisabled_main(): - assert False, "This optional test should never be run" - - -def optionalTestsWork_setup(): - pass - - -def optionalTestsWork_main(): - pass - - -def asyncSleep_setup(): - loop = asyncio.get_event_loop() - loop.run_until_complete(asyncSleepHelper()) - - -def asyncSleep_main(): - pass - - -async def asyncSleepHelper(): - sleepTestVal = {'test': False} - Robot.run(asyncSleepHelper2, sleepTestVal) - - await Actions.sleep(.1) - print('Testing sleep part 1') - if sleepTestVal['test']: - print('Success!') - else: - print('Failed to sleep for the correct amount of time') - +async def wave_and_high_five(): + set_wrist_servo(0) + for _ in range(2): + set_elbow_servo(0) + await Actions.sleep(1) + set_elbow_servo(-1) + await Actions.sleep(1) + + set_elbow_servo(.1) + await Actions.sleep(.3) + set_elbow_servo(.05) + await Actions.sleep(.3) + set_elbow_servo(0) + await Actions.sleep(1) + + for _ in range(3): + set_wrist_servo(-1) + await Actions.sleep(1) + set_wrist_servo(1) + await Actions.sleep(1) + +async def jiggle(power): + set_right_motor(power) + set_left_motor(power) await Actions.sleep(.5) - print('Testing sleep part 2') - if not sleepTestVal['test']: - print('Success!') - else: - print('Failed to sleep for the correct amount of time') - - -async def asyncSleepHelper2(sleepTestVal): - sleepTestVal['test'] = True + set_right_motor(0) + set_left_motor(0) + await Actions.sleep(1) + set_right_motor(-power) + set_left_motor(-power) + await Actions.sleep(.9) + set_right_motor(0) + set_left_motor(0) await Actions.sleep(.5) - sleepTestVal['test'] = False - -########################### -# Solar Scramble Functions -########################### -def next_power(num): - return num - -def reverse_digits(num): - return num - -def smallest_prime_fact(num): - return num - -def prime_factor(num): - return num -def silly_base_two(num): - return num - -def most_common_digit(num): - return num - -def valid_isbn_ten(num): - return num - -def simd_four_square(num): +""" +def tennis_ball(n): + return 1 + +def remove_duplicates(n): + return 1 + +def rotate(n): + return 1 + +def next_fib(n): + return 1 + +def most_common(n): + return 1 + +def get_coins(n): + return 1 +""" + + +def rotate(numbers): + copy = numbers + max_num = 0 + while copy: + num = copy % 10 + copy = copy // 10 + size = math.log(numbers)//math.log(10) + max_num = num if num > max_num else max_num + for i in range(max_num): + lsd = numbers % 10 + numbers = numbers // 10 + msd = (lsd) * 10**(size) + numbers = numbers + msd + return int(numbers) + +def tennis_ball(num): + index = 5 + while index > 0: + if num % 3 == 0: + num = num // 3 + elif num % 2 == 1: + num = num * 4 + 2 + else: + num += 1 + index -= 1 return num -def double_caesar_cipher(key): - return key +def most_common(num): + parse = [] + while num != 0: + parse.append(num % 10) + num = num // 10 + parse.reverse() + l = list(set(parse)) + if len(l) <= 4: + l = sorted(l, reverse=True) + else: + ret = [] + d = {} + for n in parse: + if n in d.keys(): + d[n] += 1 + else: + d[n] = 1 + final = [] + boolean = {} + for key, value in sorted(d.items(), key=lambda kv: kv[1], reverse = True): + final.append(key) + boolean[key] = False + boolean[final[3]] = True + for key in final: + if d[key] == d[final[3]]: + boolean[key] = True + for i in range(4): + if boolean[final[i]] == False: + ret.append(final[i]) + left = 4 - len(ret) + if left != 0: + for i in range(len(parse)): + if boolean[parse[i]] == True and parse[i] not in ret: + print(parse[i]) + ret.append(parse[i]) + left -= 1 + if left == 0: + break + l = sorted(ret, reverse=True) + final_num = 0 + while l != []: + final_num = final_num * 10 + l[0] + l = l[1:] + return final_num + +def remove_duplicates(num): + l = [] + while num > 0: + l = [num % 10] + l + num = num // 10 + final = [] + for i in range(len(l)): + y = 0 + exist = False + while y < i: + if l[i] == l[y]: + exist = True + y += 1 + if not exist: + final = [l[i]] + final + n = 0 + while final != []: + n = 10 * n + final[-1] + final = final[:-1] + return n + +def next_fib(num): + first = 0 + second = 1 + sum = 0 + if num == 0: + return 0 + for i in range(num): + sum = first + second + if sum >= num: + return sum + first = second + second = sum + +def get_coins(num): + quarters = num // 25 + nickels = (num - 25 * quarters) // 5 + pennies = num - nickels * 5 - quarters * 25 + return int(str(quarters) + str(nickels) + str(pennies)) diff --git a/runtime/studentapi.py b/runtime/studentapi.py index 99606f27..949cc8b8 100644 --- a/runtime/studentapi.py +++ b/runtime/studentapi.py @@ -4,6 +4,7 @@ import csv import inspect import io +import time from runtimeUtil import * @@ -13,6 +14,7 @@ class Actions: async def sleep(seconds): await asyncio.sleep(seconds) + class StudentAPI: """Hidden interface with State Manager.""" def __init__(self, toManager, fromManager): @@ -40,6 +42,20 @@ def _set_sm_value(self, value, key, *args): return message +class Field(StudentAPI): + @property + def starting_zone(self): + return self._get_sm_value('starting_zone') + + @property + def master(self): + return self._get_sm_value('master') + + @property + def time(self): + return time.time() + + class Gamepad(StudentAPI): """Software interface for accessing a gamepad.""" buttons = { @@ -120,15 +136,14 @@ class Robot(StudentAPI): "led4": [(bool,)], } - def __init__(self, to_manager, from_manager, func_map): + def __init__(self, to_manager, from_manager): super().__init__(to_manager, from_manager) - self.func_map = func_map self._create_sensor_mapping() self._coroutines_running = set() self._stdout_buffer = io.StringIO() self._get_all_sensors() - + self.nonexistent_sensors = [] self.student_code_writes = {} def _get_all_sensors(self): @@ -144,18 +159,24 @@ def get_value(self, device_name, param): def set_value(self, device_name, param, value): """Set a parameter value for device.""" uid = self._hibike_get_uid(device_name) + if uid is None: + return self._check_write_params(uid, param) self._check_value(param, value) self.hibike_write_value(uid, [(param, value)]) def set_motor(self, device_name, value): uid = self._hibike_get_uid(device_name) + if uid is None: + return self._check_write_params(uid, "duty_cycle") self._check_value("duty_cycle", value) self.hibike_write_value(uid, [("duty_cycle", value)]) def stop_motor(self, device_name): uid = self._hibike_get_uid(device_name) + if uid is None: + return self._check_write_params(uid, "duty_cycle") self._check_value("duty_cycle", 0) self.hibike_write_value(uid, [("duty_cycle", 0)]) @@ -255,13 +276,21 @@ def get_timestamp(self, key, *args): raise message return message + # pylint: disable=inconsistent-return-statements def _hibike_get_uid(self, name): + # TODO: Implement sensor mappings, right now uid is the number (or string of number) try: - # TODO: Implement sensor mappings, right now uid is the number (or string of number) device = int(name) + except ValueError: + self._print(f'Device UID must be an integer. Found: "{str(name)}".') + return + if device in self.peripherals: return device - except (ValueError, KeyError) as exc: - raise StudentAPIKeyError('Device not found: ' + str(name)) from exc + if device in self.nonexistent_sensors: + return + self.nonexistent_sensors += [device] + self.to_manager.put([SM_COMMANDS.SEND_CONSOLE, + ['Warning: device not found: ' + str(name) + '\n']]) def emergency_stop(self): """Stop the robot.""" diff --git a/shepherd/.gitattributes b/shepherd/.gitattributes new file mode 100644 index 00000000..9c2f3cd2 --- /dev/null +++ b/shepherd/.gitattributes @@ -0,0 +1 @@ +static/AIRHORNMLG.wav filter=lfs diff=lfs merge=lfs -text diff --git a/shepherd/Alliance.py b/shepherd/Alliance.py index 9bee96bc..2382c6e6 100644 --- a/shepherd/Alliance.py +++ b/shepherd/Alliance.py @@ -16,7 +16,7 @@ class Alliance: def __init__(self, name, team_1_name, team_1_number, team_2_name, team_2_number, perk_1=PERKS.EMPTY, perk_2=PERKS.EMPTY, - perk_3=PERKS.EMPTY): + perk_3=PERKS.EMPTY, team_1_custom_ip=None, team_2_custom_ip=None): self.name = name self.team_1_name = team_1_name self.team_2_name = team_2_name @@ -26,6 +26,11 @@ def __init__(self, name, team_1_name, team_1_number, team_2_name, self.perk_1 = 0 self.perk_2 = 0 self.perk_3 = 0 + self.can_twist = True + self.team_1_connection = False + self.team_2_connection = False + self.team_1_custom_ip = team_1_custom_ip + self.team_2_custom_ip = team_2_custom_ip def change_score(self, amount): """ changes score of this alliance by Amount, @@ -37,8 +42,20 @@ def change_score(self, amount): def reset(self): self.score = 0 + self.perk_1 = 0 + self.perk_2 = 0 + self.perk_3 = 0 + self.can_twist = True + self.team_1_connection = False + self.team_2_connection = False lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.SCORE, {"alliance" : self.name, "score" : math.floor(self.score)}) #TODO: Send info to sensors about reset #TODO: Send info to UI about reset #TODO: Move score sends to shepherd.py + + def __str__(self): + return (" ") diff --git a/shepherd/Code.py b/shepherd/Code.py index bb67cdfe..5319290c 100644 --- a/shepherd/Code.py +++ b/shepherd/Code.py @@ -1,19 +1,40 @@ import random +import math +import numpy as np from Utils import * codes = [] solutions = [] code_solution = {} code_effect = {} -effect_list = list(EFFECTS.ALL_EFFECTS) def generate_code(code_list): - ##: TODO - pass + ''' + Take a list of codes that return a new random code + ''' + temp = np.random.permutation(10) + num = 0 + for a in temp: + num = num * 10 + a + while num in code_list: + temp = np.random.permutation(10) + num = 0 + for a in temp: + temp = temp * 10 + a + return num + def decode(code): - ##: TODO - pass + ''' + Call all functions + ''' + one = tennis_ball(code) + two = remove_duplicates(one) + three = rotate(two) + four = next_fib(three) + five = most_common(four) + final = get_coins(five) + return final def assign_code_solution(): ''' @@ -21,6 +42,8 @@ def assign_code_solution(): ''' codes.clear() solutions.clear() + code_solution.clear() + code_effect.clear() for i in range(16): # pylint: disable=assignment-from-no-return new_code = generate_code(codes) @@ -36,5 +59,124 @@ def assign_code_effect(): Assign each code to a random effect ''' for i in range(16): - code_effect[codes[i]] = random.choice(effect_list) + code_effect[codes[i]] = (EFFECTS.TWIST if random.random() < + CONSTANTS.TWIST_CHANCE else + EFFECTS.SPOILED_CANDY) return code_effect + +def rotate(numbers): + copy = numbers + max_num = 0 + while copy: + num = copy % 10 + copy = copy // 10 + size = math.log(numbers)//math.log(10) + max_num = num if num > max_num else max_num + for _ in range(max_num): + lsd = numbers % 10 + numbers = numbers // 10 + msd = (lsd) * 10**(size) + numbers = numbers + msd + return int(numbers) + +def tennis_ball(num): + index = 5 + while index > 0: + if num % 3 == 0: + num = num // 3 + elif num % 2 == 1: + num = num * 4 + 2 + else: + num += 1 + index -= 1 + return num + +def most_common(num): + parse = [] + while num != 0: + parse.append(num % 10) + num = num // 10 + parse.reverse() + l = list(set(parse)) + if len(l) <= 4: + l = sorted(l, reverse=True) + else: + ret = [] + d = {} + for n in parse: + if n in d.keys(): + d[n] += 1 + else: + d[n] = 1 + final = [] + boolean = {} + print(d) + for key, _ in sorted(d.items(), key=lambda kv: kv[1], reverse=True): + final.append(key) + boolean[key] = False + print(final) + boolean[final[3]] = True + for key in final: + if d[key] == d[final[3]]: + boolean[key] = True + for i in range(4): + if not boolean[final[i]]: + ret.append(final[i]) + print(ret) + left = 4 - len(ret) + print(left) + if left != 0: + for i in range(len(parse)): + if boolean[parse[i]] and parse[i] not in ret: + print(parse[i]) + ret.append(parse[i]) + left -= 1 + if left == 0: + break + l = sorted(ret, reverse=True) + final_num = 0 + while l != []: + final_num = final_num * 10 + l[0] + l = l[1:] + return final_num + +def remove_duplicates(num): + l = [] + while num > 0: + l = [num % 10] + l + num = num // 10 + final = [] + for i in range(len(l)): + y = 0 + exist = False + while y < i: + if l[i] == l[y]: + exist = True + y += 1 + if not exist: + final = [l[i]] + final + n = 0 + while final != []: + n = 10 * n + final[-1] + final = final[:-1] + return n + +def next_fib(num): + first = 0 + second = 1 + total = 0 + if num == 0: + return 0 + for _ in range(num): + total = first + second + if total >= num: + return total + first = second + second = total + return total + +def get_coins(num): + quarters = num // 25 + nickels = (num - 25 * quarters) // 5 + pennies = num - nickels * 5 - quarters * 25 + return int(str(quarters) + str(nickels) + str(pennies)) diff --git a/shepherd/DummyRuntime_client_manager.py b/shepherd/DummyRuntime_client_manager.py new file mode 100644 index 00000000..3f640c82 --- /dev/null +++ b/shepherd/DummyRuntime_client_manager.py @@ -0,0 +1,46 @@ +from Code import * +def connect_to_robots(team1, team2, team3, team4): + return Runtime_client_manager(team1, team2, team3, team4) + +class Runtime_client_manager: + + class connection: + def __init__(self, num): + self.num = num + + def set_mode(self, mode): + pass + + def __init__(self, team_1, team_2, team_3, team_4): + self.team_1 = team_1 + self.team_2 = team_2 + self.team_3 = team_3 + self.team_4 = team_4 + self.clients = {team_1: self.connection(1111), team_2: self.connection(2222), + team_3: self.connection(3333), team_4: self.connection(4444)} + self.team_1_code = None + self.team_2_code = None + self.team_3_code = None + self.team_4_code = None + + def set_mode(self, mode): + pass + + def get_student_solutions(self): + thingy = {self.team_1: self.team_1_code, self.team_2: self.team_2_code, + self.team_3: self.team_3_code, self.team_4: self.team_4_code} + self.team_1_code = None + self.team_2_code = None + self.team_3_code = None + self.team_4_code = None + return thingy + + def run_coding_challenge(self, team, code): + if team == self.team_1: + self.team_1_code = decode(code) + if team == self.team_2: + self.team_2_code = decode(code) + if team == self.team_3: + self.team_3_code = decode(code) + if team == self.team_4: + self.team_4_code = decode(code) diff --git a/shepherd/DummyScoreboard.py b/shepherd/DummyScoreboard.py new file mode 100755 index 00000000..345bb51a --- /dev/null +++ b/shepherd/DummyScoreboard.py @@ -0,0 +1,9 @@ +import queue +import LCM +from Utils import * + +if __name__ == "__main__": + events = queue.Queue() + LCM.lcm_start_read(LCM_TARGETS.SCOREBOARD, events) + while True: + print(events.get(True)) diff --git a/shepherd/DummySensors.py b/shepherd/DummySensors.py new file mode 100755 index 00000000..beea3835 --- /dev/null +++ b/shepherd/DummySensors.py @@ -0,0 +1,111 @@ +import threading +import queue +from LCM import * +from Utils import * + +def sender(): + input_to_header = { + "launch" : SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED, + "code" : SHEPHERD_HEADER.CODE_RETRIEVAL, + "overdrive" : SCOREBOARD_HEADER.OVERDRIVE_START, + "effect" : SCOREBOARD_HEADER.APPLIED_EFFECT, + "timer" : SCOREBOARD_HEADER.STAGE_TIMER_START, + "perk" : SCOREBOARD_HEADER.PERKS_SELECTED + } + + input_to_alliance = { + "gold" : ALLIANCE_COLOR.GOLD, + "blue" : ALLIANCE_COLOR.BLUE, + } + + input_to_launch = { + "1" : 1, + "2" : 2, + } + + input_to_effect = { + "twist" : EFFECTS.TWIST, + "spoil" : EFFECTS.SPOILED_CANDY + } + + input_to_size = { + "fun" : "fun", + "full" : "full", + "king" : "king" + } + + while True: + new_input = input_to_header.get(input("Command: {launch, code, effect, " + "overdrive, timer, perk} ")) + if new_input == SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED: + alliance = input_to_alliance.get(input("Alliance: blue gold ")) + button_num = input_to_launch.get(input("Launch button: 1 2 ")) + if button_num is None or alliance is None: + print("Invalid input") + continue + lcm_send(LCM_TARGETS.SHEPHERD, new_input, {"alliance" : alliance, + "button" : button_num}) + + elif new_input == SHEPHERD_HEADER.CODE_RETRIEVAL: # {alliance, result} + alliance = input_to_alliance.get(input("Alliance: blue gold ")) + code = input("Code: ") + if alliance is None or code is None: + print("Invalid input") + continue + lcm_send(LCM_TARGETS.SHEPHERD, new_input, {"alliance" : alliance, + "result" : code}) + + elif new_input == SCOREBOARD_HEADER.APPLIED_EFFECT: # {alliance, result} + alliance = input_to_alliance.get(input("Alliance: blue gold ")) + effect = input_to_effect.get(input("Effect: twist spoil ")) + if alliance is None or effect is None: + print("Invalid input") + continue + lcm_send(LCM_TARGETS.SCOREBOARD, new_input, {"alliance" : alliance, "effect" : effect}) + + elif new_input == SCOREBOARD_HEADER.OVERDRIVE_START: + size = input_to_size.get(input("Size: fun full king ")) + if size is None: + print("Invalid input") + continue + lcm_send(LCM_TARGETS.SCOREBOARD, new_input, {"size": size}) + + elif new_input == SCOREBOARD_HEADER.STAGE_TIMER_START: + try: + time = int(input("Time (s): ")) + except (ValueError, TypeError): + print("Invalid input") + continue + lcm_send(LCM_TARGETS.SCOREBOARD, new_input, {"time": time}) + + elif new_input == SCOREBOARD_HEADER.PERKS_SELECTED: + msg_blue = {"alliance": "blue", "perk_1": "bubblegum", + "perk_2": "minty fresh start", "perk_3": "jawbreaker"} + msg_gold = {"alliance": "gold", "perk_1": "taffy", + "perk_2": "chocolate-covered espresso beans", "perk_3": "sour gummy worms"} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.PERKS_SELECTED, msg_blue) + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.PERKS_SELECTED, msg_gold) + + # elif new_input == SCOREBOARD_HEADER.APPLIED_EFFECT + # alliance = input_to_alliance.get(input("Alliance: blue gold ")) + # button_num = input_to_launch.get(input("Launch button: 1 2")) + # if button_num is None or alliance is None: + # print("Invalid input") + # continue + # lcm_send(LCM_TARGETS.SHEPHERD, new_input, {"alliance" : alliance, + # "button" : button_num}) + else: + print("Invalid input") + +def receiver(): + events = queue.Queue() + lcm_start_read(LCM_TARGETS.SENSORS, events) + while True: + event = events.get(True) + print(event) + +if __name__ == "__main__": + sender_thread = threading.Thread(target=sender, name="DummySensorSender") + recv_thread = threading.Thread(target=receiver, name="DummySensorReceiver") + sender_thread.start() + recv_thread.start() diff --git a/shepherd/DummyShepherd.py b/shepherd/DummyShepherd.py new file mode 100755 index 00000000..eaab5710 --- /dev/null +++ b/shepherd/DummyShepherd.py @@ -0,0 +1,18 @@ +import queue +import time +from LCM import * +from Utils import * + +if __name__ == '__main__': + while True: + msg = {"autonomous": True, "enabled": True} + lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.ROBOT_STATE, msg) + + time.sleep(1) + msg2 = {"autonomous": False, "enabled": False} + lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.ROBOT_STATE, msg2) + time.sleep(1) + + # lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.CODES, {"rfids" : [1, 2, 3, 4, 5, 6], + # "codes" : [1, 2, 3, 4, 5, 6], + # "solutions" : [1, 2, 3, 4, 5, 6]}) diff --git a/shepherd/DummyShepherdReceiver.py b/shepherd/DummyShepherdReceiver.py new file mode 100755 index 00000000..d44fb1ac --- /dev/null +++ b/shepherd/DummyShepherdReceiver.py @@ -0,0 +1,52 @@ +import queue +# import random as rand +from LCM import * +from Utils import * + +def receiver(): + #pylint: disable=undefined-variable + events = queue.Queue() + lcm_start_read(LCM_TARGETS.SHEPHERD, events) + while True: + event = events.get(True) + print("got event") + # if event[0] == SHEPHERD_HEADER.GENERATE_RFID: + # s = [] + # for _ in range(6): + # s.append(rand.randrange(10)) + # x = {"RFID_list": s} + # lcm_send(LCM_TARGETS.UI, UI_HEADER.RFID_LIST, x) + # print("Sent RFIDs") + if event[0] == SHEPHERD_HEADER.GET_SCORES: + x = {"blue_score": rand.randrange(100), "gold_score": rand.randrange(100)} + lcm_send(LCM_TARGETS.UI, UI_HEADER.SCORES, x) + print("Sent scores") + elif event[0] == SHEPHERD_HEADER.SCORE_ADJUST: + print(event[1]) + elif event[0] == SHEPHERD_HEADER.GET_MATCH_INFO: + x = {"match_num": rand.randrange(100), "b1name": "- a string1", + "b1num": rand.randrange(10), "b2name": "- a string2", + "b2num": rand.randrange(10), "g1name": "- a string3", + "g1num": rand.randrange(10), "g2name": "- a string4", "g2num": rand.randrange(10)} + lcm_send(LCM_TARGETS.UI, UI_HEADER.TEAMS_INFO, x) + print("Sent Team Info") + elif event[0] == SHEPHERD_HEADER.SETUP_MATCH: + print(event[1]) + elif event[0] == SHEPHERD_HEADER.START_NEXT_STAGE: + print("starting stage") + elif event[0] == SHEPHERD_HEADER.RESET_CURRENT_STAGE: + print("reset stage") + elif event[0] == SHEPHERD_HEADER.RESET_MATCH: + print("reset match") + if event[0] == SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED: + alliance = event[1]["alliance"] + button = event[1]["button"] + msg = {"alliance": alliance, "button": button} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.LAUNCH_BUTTON_TIMER_START, msg) + if event[0] == SHEPHERD_HEADER.APPLY_PERKS: + msg = {"alliance": event[1]["alliance"], "perk_1": event[1]["perk1"], + "perk_2": event[1]["perk2"], "perk_3": event[1]["perk3"]} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.PERKS_SELECTED, msg) + +if __name__ == "__main__": + receiver() diff --git a/shepherd/Log.py b/shepherd/Log.py new file mode 100644 index 00000000..3ae057fc --- /dev/null +++ b/shepherd/Log.py @@ -0,0 +1,36 @@ +import datetime +import Shepherd +from Utils import * + +last_header = None +#pylint: disable=redefined-builtin, no-member +def log(Exception): + global last_header + # if Shepherd.match_number <= 0: + # return + now = datetime.datetime.now() + filename = str(now.month) + "-" + str(now.day) + "-" + str(now.year) +\ + "-match-"+ str(Shepherd.match_number) +".txt" + print("a normally fatal exception occured, but Shepherd will continue to run") + print("all known details are logged to logs/"+filename) + file = open("logs/"+filename, "a+") + file.write("\n========================================\n") + file.write("a normally fatal exception occured.\n") + file.write("all relevant data may be found below.\n") + file.write("match: " + str(Shepherd.match_number)+"\n") + file.write("game state: " + str(Shepherd.game_state)+"\n") + file.write("gold alliance: " + str(Shepherd.alliances[ALLIANCE_COLOR.GOLD])+"\n") + file.write("blue alliance: " + str(Shepherd.alliances[ALLIANCE_COLOR.BLUE])+"\n") + file.write("game timer running?: " + str(Shepherd.game_timer.is_running())+"\n") + file.write("extended teleop timer running?: " + + str(Shepherd.extended_teleop_timer.is_running())+"\n") + file.write("launch button timers running(g1 g2 b1 b2)?: " + + str(Shepherd.launch_button_timer_gold_1.is_running()) + " " + + str(Shepherd.launch_button_timer_gold_2.is_running()) + " " + + str(Shepherd.launch_button_timer_blue_1.is_running()) + " " + + str(Shepherd.launch_button_timer_blue_2.is_running())+"\n") + file.write("overdrive timer active?: " + str(Shepherd.overdrive_timer.is_running())+"\n") + file.write("the last received header was:" + str(last_header)+"\n") + file.write("a stacktrace of the error may be found below\n") + file.write(str(Exception)) + file.close() diff --git a/shepherd/Pipfile b/shepherd/Pipfile index 07386910..eb9225db 100644 --- a/shepherd/Pipfile +++ b/shepherd/Pipfile @@ -14,3 +14,6 @@ click = "*" httplib2 = "*" google-auth-httplib2 = "*" google-auth-oauthlib = "*" +msgpack-rpc-python = "*" +numpy = "*" +simpleaudio = "*" diff --git a/shepherd/Pipfile.lock b/shepherd/Pipfile.lock index dab33107..ad2a0570 100644 --- a/shepherd/Pipfile.lock +++ b/shepherd/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "c7aa14c75608be492b0fe995d62fb88f4a403193e89ddf388463d6388ff7fcf9" + "sha256": "d1a49ad664993006ad1310d0b91c672d58358ab4eb7c9e2fdc06ff6e4d29bdbe" }, "pipfile-spec": 6, "requires": { @@ -17,10 +17,10 @@ "default": { "astroid": { "hashes": [ - "sha256:35b032003d6a863f5dcd7ec11abd5cd5893428beaa31ab164982403bcb311f22", - "sha256:6a5d668d7dc69110de01cdf7aeec69a679ef486862a0850cc0fd5571505b6b7e" + "sha256:6560e1e1749f68c64a4b5dee4e091fce798d2f0d84ebe638cf0e0585a343acf4", + "sha256:b65db1bbaac9f9f4d190199bb8680af6f6f84fd3769a5ea883df8a91fe68b4c4" ], - "version": "==2.1.0" + "version": "==2.2.5" }, "cachetools": { "hashes": [ @@ -31,10 +31,10 @@ }, "certifi": { "hashes": [ - "sha256:47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7", - "sha256:993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033" + "sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5", + "sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae" ], - "version": "==2018.11.29" + "version": "==2019.3.9" }, "chardet": { "hashes": [ @@ -59,10 +59,10 @@ }, "google-auth": { "hashes": [ - "sha256:b6081ba9946828d6417c15ecdc723fdb7c007cdd74e140747d3876a7440f0be5", - "sha256:e8d64e9bc8cb6f0fc5360c693f86dc9ee6964081ee702e3b5ddc937f99efc950" + "sha256:0f7c6a64927d34c1a474da92cfc59e552a5d3b940d3266606c6a28b72888b9e4", + "sha256:20705f6803fd2c4d1cc2dcb0df09d4dfcb9a7d51fd59e94a3a28231fd93119ed" ], - "version": "==1.6.2" + "version": "==1.6.3" }, "google-auth-httplib2": { "hashes": [ @@ -73,16 +73,17 @@ }, "google-auth-oauthlib": { "hashes": [ - "sha256:226d1d0960f86ba5d9efd426a70b291eaba96f47d071657e0254ea969025728a", - "sha256:81ba22acada4d13b1d83f9371ab19fd61f1250a542d21cf49e4dcf0637a7344a" + "sha256:a0470c19130ddf90c2b07c0c701d72890a7335090903aeb709f003a66416380f", + "sha256:c57303d85199fdba00bc7b8fb21ccf6c2b9d3e69d6830fd69ff951c64cf2c1d6" ], - "version": "==0.2.0" + "version": "==0.3.0" }, "httplib2": { "hashes": [ - "sha256:f61fb838a94ce3b349aa32c92fd8430f7e3511afdb18bf9640d647e30c90a6d6" + "sha256:23914b5487dfe8ef09db6656d6d63afb0cf3054ad9ebc50868ddc8e166b5f8e8", + "sha256:a18121c7c72a56689efbf1aef990139ad940fee1e64c6f2458831736cd593600" ], - "version": "==0.12.0" + "version": "==0.12.3" }, "idna": { "hashes": [ @@ -93,11 +94,10 @@ }, "isort": { "hashes": [ - "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af", - "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8", - "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497" + "sha256:01cb7e1ca5e6c5b3f235f0385057f70558b70d2f00320208825fa62887292f43", + "sha256:268067462aed7eb2a1e237fcb287852f22077de3fb07964e87e00f829eea2d1a" ], - "version": "==4.3.4" + "version": "==4.3.17" }, "lazy-object-proxy": { "hashes": [ @@ -140,6 +140,46 @@ ], "version": "==0.6.1" }, + "msgpack-python": { + "hashes": [ + "sha256:378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b" + ], + "version": "==0.5.6" + }, + "msgpack-rpc-python": { + "hashes": [ + "sha256:ba7188129f2ba95fb9731f906aa82a5abd5827dd54ecfc715008f5ce2314535f" + ], + "version": "==0.4.1" + }, + "numpy": { + "hashes": [ + "sha256:0e2eed77804b2a6a88741f8fcac02c5499bba3953ec9c71e8b217fad4912c56c", + "sha256:1c666f04553ef70fda54adf097dbae7080645435fc273e2397f26bbf1d127bbb", + "sha256:1f46532afa7b2903bfb1b79becca2954c0a04389d19e03dc73f06b039048ac40", + "sha256:315fa1b1dfc16ae0f03f8fd1c55f23fd15368710f641d570236f3d78af55e340", + "sha256:3d5fcea4f5ed40c3280791d54da3ad2ecf896f4c87c877b113576b8280c59441", + "sha256:48241759b99d60aba63b0e590332c600fc4b46ad597c9b0a53f350b871ef0634", + "sha256:4b4f2924b36d857cf302aec369caac61e43500c17eeef0d7baacad1084c0ee84", + "sha256:54fe3b7ed9e7eb928bbc4318f954d133851865f062fa4bbb02ef8940bc67b5d2", + "sha256:5a8f021c70e6206c317974c93eaaf9bc2b56295b6b1cacccf88846e44a1f33fc", + "sha256:754a6be26d938e6ca91942804eb209307b73f806a1721176278a6038869a1686", + "sha256:771147e654e8b95eea1293174a94f34e2e77d5729ad44aefb62fbf8a79747a15", + "sha256:78a6f89da87eeb48014ec652a65c4ffde370c036d780a995edaeb121d3625621", + "sha256:7fde5c2a3a682a9e101e61d97696687ebdba47637611378b4127fe7e47fdf2bf", + "sha256:80d99399c97f646e873dd8ce87c38cfdbb668956bbc39bc1e6cac4b515bba2a0", + "sha256:88a72c1e45a0ae24d1f249a529d9f71fe82e6fa6a3fd61414b829396ec585900", + "sha256:a4f4460877a16ac73302a9c077ca545498d9fe64e6a81398d8e1a67e4695e3df", + "sha256:a61255a765b3ac73ee4b110b28fccfbf758c985677f526c2b4b39c48cc4b509d", + "sha256:ab4896a8c910b9a04c0142871d8800c76c8a2e5ff44763513e1dd9d9631ce897", + "sha256:abbd6b1c2ef6199f4b7ca9f818eb6b31f17b73a6110aadc4e4298c3f00fab24e", + "sha256:b16d88da290334e33ea992c56492326ea3b06233a00a1855414360b77ca72f26", + "sha256:b78a1defedb0e8f6ae1eb55fa6ac74ab42acc4569c3a2eacc2a407ee5d42ebcb", + "sha256:cfef82c43b8b29ca436560d51b2251d5117818a8d1fb74a8384a83c096745dad", + "sha256:d160e57731fcdec2beda807ebcabf39823c47e9409485b5a3a1db3a8c6ce763e" + ], + "version": "==1.16.3" + }, "oauth2client": { "hashes": [ "sha256:b8a81cc5d60e2d364f0b1b98f958dbd472887acaf1a5b05e21c28c31a2d6d3ac", @@ -163,17 +203,17 @@ }, "pyasn1-modules": { "hashes": [ - "sha256:79580acf813e3b7d6e69783884e6e83ac94bf4617b36a135b85c599d8a818a7b", - "sha256:a52090e8c5841ebbf08ae455146792d9ef3e8445b21055d3a3b7ed9c712b7c7c" + "sha256:ef721f68f7951fab9b0404d42590f479e30d9005daccb1699b0a51bb4177db96", + "sha256:f309b6c94724aeaf7ca583feb1cc70430e10d7551de5e36edfc1ae6909bcfb3c" ], - "version": "==0.2.4" + "version": "==0.2.5" }, "pylint": { "hashes": [ - "sha256:689de29ae747642ab230c6d37be2b969bf75663176658851f456619aacf27492", - "sha256:771467c434d0d9f081741fec1d64dfb011ed26e65e12a28fe06ca2f61c4d556c" + "sha256:5d77031694a5fb97ea95e828c8d10fc770a1df6eb3906067aaed42201a8a6a09", + "sha256:723e3db49555abaf9bf79dc474c6b9e2935ad82230b10c1138a71ea41ac0fff1" ], - "version": "==2.2.2" + "version": "==2.3.1" }, "pyserial": { "hashes": [ @@ -203,6 +243,21 @@ ], "version": "==4.0" }, + "simpleaudio": { + "hashes": [ + "sha256:3a6a56d45d7c113522a5e33073b405296e58cd2006e1e31df4be437175572e06", + "sha256:3b72b3d07fba29079119a99203fe9d1bacf13d0f36cc9ce7b218af28d96123df", + "sha256:4e0e4c0359f153408e9b8a65342ec0c1d014f36fbe9cdb594e9b6e5348916af8", + "sha256:5d191a1db01c5ce1c5e2e62bf130908881c84fb3b3b77bd191c6ca00b75f1715", + "sha256:80cbebce76a0d1992c29d60e528e4061a61a88415aa1a06cf7b3af6a9633fed4", + "sha256:9ee4e2e40ff5b0d1e5cf831563893296d2ca6b5953b5b7082316fae9d7e4f532", + "sha256:a0e29eae2cfb2e7e69a60072464cb82d1d87f32816aff652cab0315a0d07976d", + "sha256:c80b04aadc7aa0da23ad1ab669819e38e46123a84f2b310dfe1eb2d27daa5c1b", + "sha256:c8edd2019fea20afad93a938f0e42ca8d9b2c5dfe9569de7bce91d33a2a5b73f", + "sha256:fb5300b7b7d1cf93667f37f25bc7efddeea3df18afd742eb9b9a4afe55eea8b2" + ], + "version": "==1.0.2" + }, "six": { "hashes": [ "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", @@ -210,6 +265,42 @@ ], "version": "==1.12.0" }, + "tornado": { + "hashes": [ + "sha256:5ef073ac6180038ccf99411fe05ae9aafb675952a2c8db60592d5daf8401f803", + "sha256:6d14e47eab0e15799cf3cdcc86b0b98279da68522caace2bd7ce644287685f0a", + "sha256:92b7ca81e18ba9ec3031a7ee73d4577ac21d41a0c9b775a9182f43301c3b5f8e", + "sha256:ab587996fe6fb9ce65abfda440f9b61e4f9f2cf921967723540679176915e4c3", + "sha256:b36298e9f63f18cad97378db2222c0e0ca6a55f6304e605515e05a25483ed51a" + ], + "version": "==4.5.3" + }, + "typed-ast": { + "hashes": [ + "sha256:04894d268ba6eab7e093d43107869ad49e7b5ef40d1a94243ea49b352061b200", + "sha256:16616ece19daddc586e499a3d2f560302c11f122b9c692bc216e821ae32aa0d0", + "sha256:252fdae740964b2d3cdfb3f84dcb4d6247a48a6abe2579e8029ab3be3cdc026c", + "sha256:2af80a373af123d0b9f44941a46df67ef0ff7a60f95872412a145f4500a7fc99", + "sha256:2c88d0a913229a06282b285f42a31e063c3bf9071ff65c5ea4c12acb6977c6a7", + "sha256:2ea99c029ebd4b5a308d915cc7fb95b8e1201d60b065450d5d26deb65d3f2bc1", + "sha256:3d2e3ab175fc097d2a51c7a0d3fda442f35ebcc93bb1d7bd9b95ad893e44c04d", + "sha256:4766dd695548a15ee766927bf883fb90c6ac8321be5a60c141f18628fb7f8da8", + "sha256:56b6978798502ef66625a2e0f80cf923da64e328da8bbe16c1ff928c70c873de", + "sha256:5cddb6f8bce14325b2863f9d5ac5c51e07b71b462361fd815d1d7706d3a9d682", + "sha256:644ee788222d81555af543b70a1098f2025db38eaa99226f3a75a6854924d4db", + "sha256:64cf762049fc4775efe6b27161467e76d0ba145862802a65eefc8879086fc6f8", + "sha256:68c362848d9fb71d3c3e5f43c09974a0ae319144634e7a47db62f0f2a54a7fa7", + "sha256:6c1f3c6f6635e611d58e467bf4371883568f0de9ccc4606f17048142dec14a1f", + "sha256:b213d4a02eec4ddf622f4d2fbc539f062af3788d1f332f028a2e19c42da53f15", + "sha256:bb27d4e7805a7de0e35bd0cb1411bc85f807968b2b0539597a49a23b00a622ae", + "sha256:c9d414512eaa417aadae7758bc118868cd2396b0e6138c1dd4fda96679c079d3", + "sha256:f0937165d1e25477b01081c4763d2d9cdc3b18af69cb259dd4f640c9b900fe5e", + "sha256:fb96a6e2c11059ecf84e6741a319f93f683e440e341d4489c9b161eca251cf2a", + "sha256:fc71d2d6ae56a091a8d94f33ec9d0f2001d1cb1db423d8b4355debfe9ce689b7" + ], + "markers": "implementation_name == 'cpython'", + "version": "==1.3.4" + }, "uritemplate": { "hashes": [ "sha256:01c69f4fe8ed503b2951bef85d996a9d22434d2431584b5b107b2981ff416fbd", @@ -220,10 +311,10 @@ }, "urllib3": { "hashes": [ - "sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39", - "sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22" + "sha256:4c291ca23bbb55c76518905869ef34bdd5f0e46af7afe6861e8375643ffee1a0", + "sha256:9a247273df709c4fedb38c711e44292304f73f39ab01beda9f6b9fc375669ac3" ], - "version": "==1.24.1" + "version": "==1.24.2" }, "wrapt": { "hashes": [ diff --git a/shepherd/Sensors.py b/shepherd/Sensors.py index 73aace5f..73493999 100644 --- a/shepherd/Sensors.py +++ b/shepherd/Sensors.py @@ -6,10 +6,11 @@ from LCM import * from Utils import * -linebreak_port_one = "/dev/ttyACM0" # change to correct port -linebreak_port_two = "/dev/ttyACM0" # change to correct port -bidding_port_blue = "/dev/ttyACM0" # change to correct port -bidding_port_gold = "/dev/ttyACM0" # change to correct port + +# run "ls /dev/tty*" to obtain the two ACM ports. + +buttons_gold_port = "/dev/ttyACM1" #change to correct port +buttons_blue_port = "/dev/ttyACM5" # change to correct port alliance_mapping = { "gold": ALLIANCE_COLOR.GOLD, @@ -24,6 +25,7 @@ def get_working_serial_ports(excludes: set): """ import glob maybe_ports = set(glob.glob("/dev/ttyACM*")) + # maybe_ports = set(glob.glob("/dev/tty.usb*")) maybe_ports.difference_update(excludes) working = [] @@ -53,10 +55,8 @@ def maybe_identify_sensor(serial_port, timeout, msg_q): serial_port.timeout = timeout try: msg = serial_port.readline().decode("utf-8") - if is_linebreak_sensor(msg) or is_bidding_station(msg): - object_type = msg[0:2] - object_alliance = msg[2:3] - msg_q.put((object_type, object_alliance, serial_port)) + object_alliance = msg[0:1] + msg_q.put((object_alliance, serial_port)) except serial.SerialTimeoutException: pass serial_port.timeout = prev_timeout @@ -79,20 +79,54 @@ def maybe_identify_sensor(serial_port, timeout, msg_q): return sensor_ports -def is_linebreak_sensor(sensor_msg): - """Check whether a message is sent from a linebreak sensor.""" - return sensor_msg[0:2] == "lb" +def recv_from_btn(ser, alliance_enum): + print("<1> Starting Button Receive Thread", flush=True) + while True: + sensor_msg = ser.readline().decode("utf-8") + sensor_msg.lower() + payload_list = sensor_msg.split(",") + if len(payload_list) == 1: + continue + payload_list[1] = payload_list[1][:-2] + print("<2> Message Received: ", payload_list, flush=True) + button_num = payload_list[1] + send_dictionary = {"alliance" : alliance_enum, "button" : button_num} + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED, send_dictionary) + print("sent dictionary:" + str(send_dictionary), flush=True) + time.sleep(0.01) -def is_bidding_station(sensor_msg): - """Check whether a message is sent from a linebreak sensor.""" - return sensor_msg[0:2] == "bs" def main(): - working_ports = get_working_serial_ports(set()) - print("working ports: ", working_ports) - relevant_ports = identify_relevant_ports(working_ports) - print("relevant ports: ", relevant_ports) + # working_ports = get_working_serial_ports(set()) + # print("working ports: ", working_ports) + # relevant_ports = identify_relevant_ports(working_ports) + # print("relevant ports: ", relevant_ports) + + # button_serial_blue = None + # button_serial_gold = None + + button_serial_gold = serial.Serial(buttons_gold_port, baudrate=115200) + button_serial_blue = serial.Serial(buttons_blue_port, baudrate=115200) + + # for alliance, port in relevant_ports: + # if alliance == 'b': + # button_serial_blue = port + # elif alliance == 'g': + # button_serial_gold = port + + + button_thread_blue = threading.Thread( + target=recv_from_btn, name="button blue", args=([button_serial_blue, ALLIANCE_COLOR.BLUE]) + ) + button_thread_gold = threading.Thread( + target=recv_from_btn, name="buttons gold", args=([button_serial_gold, ALLIANCE_COLOR.GOLD]) + ) + + button_thread_blue.daemon = True + button_thread_gold.daemon = True + button_thread_blue.start() + button_thread_gold.start() while True: time.sleep(100) diff --git a/shepherd/Shepherd.py b/shepherd/Shepherd.py index 1e7d48a4..3fbbf709 100644 --- a/shepherd/Shepherd.py +++ b/shepherd/Shepherd.py @@ -2,12 +2,20 @@ import queue import random import time +import datetime +import traceback from Alliance import * from LCM import * from Timer import * from Utils import * -import Code +from Code import * +from runtimeclient import RuntimeClientManager import Sheet +import bot +import audio + + +clients = RuntimeClientManager((), ()) __version__ = (1, 0, 0) @@ -16,94 +24,139 @@ # Evergreen Methods ########################################### +#pylint: disable=broad-except def start(): ''' Main loop which processes the event queue and calls the appropriate function based on game state and the dictionary of available functions ''' - global events - events = queue.Queue() - lcm_start_read(LCM_TARGETS.SHEPHERD, events) + global LAST_HEADER + global EVENTS + EVENTS = queue.Queue() + lcm_start_read(LCM_TARGETS.SHEPHERD, EVENTS) while True: - print("GAME STATE OUTSIDE: ", game_state) + print("GAME STATE OUTSIDE: ", GAME_STATE) time.sleep(0.1) - payload = events.get(True) + payload = EVENTS.get(True) + LAST_HEADER = payload print(payload) - if game_state == STATE.SETUP: - func = setup_functions.get(payload[0]) + if GAME_STATE == STATE.SETUP: + func = SETUP_FUNCTIONS.get(payload[0]) if func is not None: func(payload[1]) else: print("Invalid Event in Setup") - elif game_state == STATE.AUTO: - func = auto_functions.get(payload[0]) + elif GAME_STATE == STATE.PERK_SELCTION: + func = PERK_SELECTION_FUNCTIONS.get(payload[0]) + if func is not None: + func(payload[1]) + else: + print("Invalid Event in Perk_selection") + elif GAME_STATE == STATE.AUTO_WAIT: + func = AUTO_WAIT_FUNCTIONS.get(payload[0]) + if func is not None: + func(payload[1]) + else: + print("Invalid Event in Auto_wait") + elif GAME_STATE == STATE.AUTO: + func = AUTO_FUNCTIONS.get(payload[0]) if func is not None: func(payload[1]) else: print("Invalid Event in Auto") - elif game_state == STATE.WAIT: - func = wait_functions.get(payload[0]) + elif GAME_STATE == STATE.WAIT: + func = WAIT_FUNCTIONS.get(payload[0]) if func is not None: func(payload[1]) else: print("Invalid Event in Wait") - elif game_state == STATE.TELEOP: - func = teleop_functions.get(payload[0]) + elif GAME_STATE == STATE.TELEOP: + func = TELEOP_FUNCTIONS.get(payload[0]) if func is not None: func(payload[1]) else: print("Invalid Event in Teleop") - elif game_state == STATE.END: - func = end_functions.get(payload[0]) + elif GAME_STATE == STATE.END: + func = END_FUNCTIONS.get(payload[0]) if func is not None: func(payload[1]) else: print("Invalid Event in End") +#pylint: disable=too-many-locals def to_setup(args): ''' Move to the setup stage which is should push scores from previous game to spreadsheet, load the teams for the upcoming match, reset all state, and send information to scoreboard. By the end, should be ready to start match. ''' - global match_number - global game_state + global MATCH_NUMBER + global GAME_STATE + global STARTING_SPOTS + + b1_name, b1_num, b1_starting_spot = args["b1name"], args["b1num"], args["b1_starting_spot"] + b2_name, b2_num, b2_starting_spot = args["b2name"], args["b2num"], args["b2_starting_spot"] + g1_name, g1_num, g1_starting_spot = args["g1name"], args["g1num"], args["g1_starting_spot"] + g2_name, g2_num, g2_starting_spot = args["g2name"], args["g2num"], args["g2_starting_spot"] - b1_name, b1_num = args["b1name"], args["b1num"] - b2_name, b2_num = args["b2name"], args["b2num"] - g1_name, g1_num = args["g1name"], args["g1num"] - g2_name, g2_num = args["g2name"], args["g2num"] + g1_custom_ip = args["g1_custom_ip"] or None + g2_custom_ip = args["g2_custom_ip"] or None + b1_custom_ip = args["b1_custom_ip"] or None + b2_custom_ip = args["b2_custom_ip"] or None - if game_state == STATE.END: + STARTING_SPOTS = [b1_starting_spot, b2_starting_spot, g1_starting_spot, g2_starting_spot] + + if GAME_STATE == STATE.END: flush_scores() - match_number = args["match_num"] + MATCH_NUMBER = args["match_num"] - if alliances[ALLIANCE_COLOR.BLUE] is not None: + if ALLIANCES[ALLIANCE_COLOR.BLUE] is not None: reset() - alliances[ALLIANCE_COLOR.BLUE] = Alliance(ALLIANCE_COLOR.BLUE, b1_name, - b1_num, b2_name, b2_num) - alliances[ALLIANCE_COLOR.GOLD] = Alliance(ALLIANCE_COLOR.GOLD, g1_name, - g1_num, g2_name, g2_num) + code_setup() + + ALLIANCES[ALLIANCE_COLOR.BLUE] = Alliance(ALLIANCE_COLOR.BLUE, b1_name, + b1_num, b2_name, b2_num, b1_custom_ip, b2_custom_ip) + ALLIANCES[ALLIANCE_COLOR.GOLD] = Alliance(ALLIANCE_COLOR.GOLD, g1_name, + g1_num, g2_name, g2_num, g1_custom_ip, g2_custom_ip) + + msg = {"b1num":b1_num, "b2num": b2_num, "g1num":g1_num, "g2num":g2_num} + lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.TEAMS, msg) lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.TEAMS, { "b1name" : b1_name, "b1num" : b1_num, "b2name" : b2_name, "b2num" : b2_num, "g1name" : g1_name, "g1num" : g1_num, "g2name" : g2_name, "g2num" : g2_num, - "match_num" : match_number}) + "match_num" : MATCH_NUMBER}) - game_state = STATE.SETUP + GAME_STATE = STATE.SETUP + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) print("ENTERING SETUP STATE") - print({"blue_score" : alliances[ALLIANCE_COLOR.BLUE].score, - "gold_score" : alliances[ALLIANCE_COLOR.GOLD].score}) + print({"blue_score" : ALLIANCES[ALLIANCE_COLOR.BLUE].score, + "gold_score" : ALLIANCES[ALLIANCE_COLOR.GOLD].score}) + def to_perk_selection(args): - global game_state - game_timer.start_timer(CONSTANTS.PERK_SELECTION_TIME) - game_state = STATE.PERK_SELCTION + bot.announce_next_match(int(MATCH_NUMBER)) + + global GAME_STATE + GAME_TIMER.start_timer(CONSTANTS.PERK_SELECTION_TIME + 2) + GAME_STATE = STATE.PERK_SELCTION + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) + lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.COLLECT_PERKS) + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE_TIMER_START, + {"time" : CONSTANTS.PERK_SELECTION_TIME}) print("ENTERING PERK SELECTION STATE") + # audio.play_perk_music() + +def to_auto_wait(args): + global GAME_STATE + GAME_STATE = STATE.AUTO_WAIT + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) + lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.COLLECT_CODES) + print("ENTERING AUTO_WAIT STATE") def to_auto(args): ''' @@ -111,9 +164,31 @@ def to_auto(args): By the end, should be in autonomous state, allowing any function from this stage to be called and autonomous match timer should have begun. ''' - global game_state - game_timer.start_timer(CONSTANTS.AUTO_TIME) - game_state = STATE.AUTO + #pylint: disable= no-member + global GAME_STATE + global clients + try: + alternate_connections = (ALLIANCES[ALLIANCE_COLOR.BLUE].team_1_custom_ip, + ALLIANCES[ALLIANCE_COLOR.BLUE].team_2_custom_ip, + ALLIANCES[ALLIANCE_COLOR.GOLD].team_1_custom_ip, + ALLIANCES[ALLIANCE_COLOR.GOLD].team_2_custom_ip) + + clients = RuntimeClientManager(( + int(ALLIANCES[ALLIANCE_COLOR.BLUE].team_1_number), + int(ALLIANCES[ALLIANCE_COLOR.BLUE].team_2_number), + ), ( + int(ALLIANCES[ALLIANCE_COLOR.GOLD].team_1_number), + int(ALLIANCES[ALLIANCE_COLOR.GOLD].team_2_number), + ), *alternate_connections) + clients.set_MASTER_ROBOTS(MASTER_ROBOTS[ALLIANCE_COLOR.BLUE], + MASTER_ROBOTS[ALLIANCE_COLOR.GOLD]) + clients.set_starting_zones(STARTING_SPOTS) + except Exception as exc: + log(exc) + return + GAME_TIMER.start_timer(CONSTANTS.AUTO_TIME + 2) + GAME_STATE = STATE.AUTO + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) enable_robots(True) lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE_TIMER_START, {"time" : CONSTANTS.AUTO_TIME}) @@ -125,8 +200,9 @@ def to_wait(args): By the end, should be in wait state and the robots should be disabled. Some years, there might be methods that can be called once in the wait stage ''' - global game_state - game_state = STATE.WAIT + global GAME_STATE + GAME_STATE = STATE.WAIT + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) disable_robots() print("ENTERING WAIT STATE") @@ -135,11 +211,19 @@ def to_teleop(args): Move to teleoperated stage where robots are enabled and controlled manually. By the end, should be in teleop state and the teleop match timer should be started. ''' - global game_state - game_state = STATE.TELEOP + global GAME_STATE + GAME_STATE = STATE.TELEOP + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) Timer.reset_all() - game_timer.start_timer(CONSTANTS.TELEOP_TIME) + GAME_TIMER.start_timer(CONSTANTS.TELEOP_TIME + 2) + overdrive_time = random.randint(0, CONSTANTS.TELEOP_TIME - + CONSTANTS.OVERDRIVE_TIME) + OVERDRIVE_TIMER.start_timer(overdrive_time) + overdrive_time = CONSTANTS.TELEOP_TIME - overdrive_time + print("overdrive will happen at " + str(overdrive_time // 60) + ":" + + str(overdrive_time % 60)) + enable_robots(False) lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE_TIMER_START, {"time" : CONSTANTS.TELEOP_TIME}) @@ -150,11 +234,12 @@ def to_end(args): Move to end stage after the match ends. Robots should be disabled here and final score adjustments can be made. ''' - global game_state + global GAME_STATE lcm_send(LCM_TARGETS.UI, UI_HEADER.SCORES, - {"blue_score" : math.floor(alliances[ALLIANCE_COLOR.BLUE].score), - "gold_score" : math.floor(alliances[ALLIANCE_COLOR.GOLD].score)}) - game_state = STATE.END + {"blue_score" : math.floor(ALLIANCES[ALLIANCE_COLOR.BLUE].score), + "gold_score" : math.floor(ALLIANCES[ALLIANCE_COLOR.GOLD].score)}) + GAME_STATE = STATE.END + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE, {"stage": GAME_STATE}) disable_robots() print("ENTERING END STATE") @@ -164,16 +249,25 @@ def reset(args=None): Should reset all state being tracked by Shepherd. ****THIS METHOD MIGHT NEED UPDATING EVERY YEAR BUT SHOULD ALWAYS EXIST**** ''' - global game_state, events - game_state = STATE.SETUP + global GAME_STATE, EVENTS, clients + GAME_STATE = STATE.SETUP Timer.reset_all() - events = queue.Queue() - lcm_start_read(LCM_TARGETS.SHEPHERD, events) + EVENTS = queue.Queue() + lcm_start_read(LCM_TARGETS.SHEPHERD, EVENTS) lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.RESET_TIMERS) - for alliance in alliances.values(): + for alliance in ALLIANCES.values(): if alliance is not None: alliance.reset() + send_connections(None) + #STARTING_SPOTS = ["unknown", "unknown", "unknown", "unknown"] + clients = RuntimeClientManager((), ()) disable_robots() + BUTTONS['gold_1'] = False + BUTTONS['gold_2'] = False + BUTTONS['blue_1'] = False + BUTTONS['blue_2'] = False + lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.RESET) + lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.RESET) print("RESET MATCH, MOVE TO SETUP") def get_match(args): @@ -190,35 +284,35 @@ def score_adjust(args): Allow for score to be changed based on referee decisions ''' blue_score, gold_score = args["blue_score"], args["gold_score"] - alliances[ALLIANCE_COLOR.BLUE].score = blue_score - alliances[ALLIANCE_COLOR.GOLD].score = gold_score + ALLIANCES[ALLIANCE_COLOR.BLUE].score = blue_score + ALLIANCES[ALLIANCE_COLOR.GOLD].score = gold_score lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.SCORE, - {"alliance" : alliances[ALLIANCE_COLOR.BLUE].name, - "score" : math.floor(alliances[ALLIANCE_COLOR.BLUE].score)}) + {"alliance" : ALLIANCES[ALLIANCE_COLOR.BLUE].name, + "score" : math.floor(ALLIANCES[ALLIANCE_COLOR.BLUE].score)}) lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.SCORE, - {"alliance" : alliances[ALLIANCE_COLOR.GOLD].name, - "score" : math.floor(alliances[ALLIANCE_COLOR.GOLD].score)}) + {"alliance" : ALLIANCES[ALLIANCE_COLOR.GOLD].name, + "score" : math.floor(ALLIANCES[ALLIANCE_COLOR.GOLD].score)}) def get_score(args): ''' Send the current blue and gold score to the UI ''' - if alliances[ALLIANCE_COLOR.BLUE] is None: + if ALLIANCES[ALLIANCE_COLOR.BLUE] is None: lcm_send(LCM_TARGETS.UI, UI_HEADER.SCORES, {"blue_score" : None, "gold_score" : None}) else: lcm_send(LCM_TARGETS.UI, UI_HEADER.SCORES, - {"blue_score" : math.floor(alliances[ALLIANCE_COLOR.BLUE].score), - "gold_score" : math.floor(alliances[ALLIANCE_COLOR.GOLD].score)}) + {"blue_score" : math.floor(ALLIANCES[ALLIANCE_COLOR.BLUE].score), + "gold_score" : math.floor(ALLIANCES[ALLIANCE_COLOR.GOLD].score)}) def flush_scores(): ''' Sends the most recent match score to the spreadsheet if connected to the internet ''' - if alliances[ALLIANCE_COLOR.BLUE] is not None: - Sheet.write_scores(match_number, alliances[ALLIANCE_COLOR.BLUE].score, - alliances[ALLIANCE_COLOR.GOLD].score) + if ALLIANCES[ALLIANCE_COLOR.BLUE] is not None: + Sheet.write_scores(MATCH_NUMBER, ALLIANCES[ALLIANCE_COLOR.BLUE].score, + ALLIANCES[ALLIANCE_COLOR.GOLD].score) return -1 def enable_robots(autonomous): @@ -226,190 +320,406 @@ def enable_robots(autonomous): Sends message to Dawn to enable all robots. The argument should be a boolean which is true if we are entering autonomous mode ''' - msg = {"autonomous": autonomous, "enabled": True} - - lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.ROBOT_STATE, msg) - - + try: + clients.set_mode("auto" if autonomous else "teleop") + except Exception as exc: + for client in clients.clients: + try: + client.set_mode("auto" if autonomous else "teleop") + except Exception as exc: + print("A robot failed to be enabled! Big sad :(") + log(exc) def disable_robots(): ''' Sends message to Dawn to disable all robots ''' - msg = {"autonomous": False, "enabled": False} - lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.ROBOT_STATE, msg) - - + try: + clients.set_mode("idle") + except Exception as exc: + for client in clients.clients: + try: + client.set_mode("idle") + except Exception as exc: + print("a client has disconnected") + log(exc) + print(exc) + +#pylint: disable=redefined-builtin +def log(Exception): + global LAST_HEADER + # if Shepherd.MATCH_NUMBER <= 0: + # return + now = datetime.datetime.now() + filename = str(now.month) + "-" + str(now.day) + "-" + str(now.year) +\ + "-match-" + str(MATCH_NUMBER) + ".txt" + print("a normally fatal exception occured, but Shepherd will continue to run") + print("all known details are logged to logs/"+filename) + file = open("logs/"+filename, "a+") + file.write("\n========================================\n") + file.write("a normally fatal exception occured.\n") + file.write("all relevant data may be found below.\n") + file.write("match: " + str(MATCH_NUMBER)+"\n") + file.write("game state: " + str(GAME_STATE)+"\n") + file.write("gold alliance: " + str(ALLIANCES[ALLIANCE_COLOR.GOLD])+"\n") + file.write("blue alliance: " + str(ALLIANCES[ALLIANCE_COLOR.BLUE])+"\n") + file.write("game timer running?: " + str(GAME_TIMER.is_running())+"\n") + file.write("extended teleop timer running?: " + str(EXTENDED_TELEOP_TIMER.is_running())+"\n") + file.write("launch button timers running(g1 g2 b1 b2)?: " + + str(LAUNCH_BUTTON_TIMER_GOLD_1.is_running()) + " " + + str(LAUNCH_BUTTON_TIMER_GOLD_2.is_running()) + " " + + str(LAUNCH_BUTTON_TIMER_BLUE_1.is_running()) + " " + + str(LAUNCH_BUTTON_TIMER_BLUE_2.is_running())+"\n") + file.write("overdrive timer active?: " + str(OVERDRIVE_TIMER.is_running())+"\n") + file.write("the last received header was:" + str(LAST_HEADER)+"\n") + file.write("a stacktrace of the error may be found below\n") + file.write(str(Exception)) + file.write(str(traceback.format_exc())) + file.close() ########################################### # Game Specific Methods ########################################### -code_solution = {} -code_effect = {} - def disable_robot(args): ''' Send message to Dawn to disable the robots of team ''' - team_number = args["team_number"] - msg = {"team_number": team_number, "autonomous": False, "enabled": False} - lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.SPECIFIC_ROBOT_STATE, msg) + try: + team_number = args["team_number"] + client = clients.clients[int(team_number)] + if client: + client.set_mode("idle") + except Exception as exc: + log(exc) + def set_master_robot(args): ''' Set the master robot of the alliance ''' alliance = args["alliance"] - team_name = args["team_name"] - if team_name == alliance.team_1_name: - team_number = alliance.team_1_number - else: - team_number = alliance.team_2_number - msg = {"alliance": alliance, "master": team_number} + team_number = args["team_num"] + MASTER_ROBOTS[alliance] = team_number + msg = {"alliance": alliance, "team_number": int(team_number)} lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.MASTER, msg) +def next_code(): + if CODES_USED == []: + CODES_USED.append(codes[0]) + return codes[0] + index = len(CODES_USED) + CODES_USED.append(codes[index]) + return codes[index] + def code_setup(): ''' Set up code_solution and code_effect dictionaries and send code_solution to Dawn ''' global code_solution global code_effect - - code_solution = Code.assign_code_solution() - code_effect = Code.assign_code_effect() - msg = {"codes_solutions": code_solution} - lcm_send(LCM_TARGETS.DAWN, DAWN_HEADER.CODES, msg) - -def apply_code(args): + code_solution = assign_code_solution() + code_effect = assign_code_effect() + +def bounce_code(args): + """bounce the code""" + try: + student_solutions = clients.get_challenge_solutions() + print(student_solutions) + for ss in student_solutions.keys(): + if student_solutions[ss] is not None: + alliance = None + if int(ALLIANCES[ALLIANCE_COLOR.BLUE].team_1_number) == int(ss): + alliance = ALLIANCE_COLOR.BLUE + if int(ALLIANCES[ALLIANCE_COLOR.GOLD].team_1_number) == int(ss): + alliance = ALLIANCE_COLOR.GOLD + if int(ALLIANCES[ALLIANCE_COLOR.BLUE].team_2_number) == int(ss): + alliance = ALLIANCE_COLOR.BLUE + if int(ALLIANCES[ALLIANCE_COLOR.GOLD].team_2_number) == int(ss): + alliance = ALLIANCE_COLOR.GOLD + msg = {"alliance": alliance, "result": student_solutions[ss]} + lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.CODE, msg) + except Exception as exc: + log(exc) + +def auto_apply_code(args): ''' Send Scoreboard the effect if the answer is correct ''' - alliance = args["alliance"] - answer = args["answer"] + alliance = ALLIANCES[args["alliance"]] + answer = int(args["answer"]) + print('Codegen answers:', answer, code_solution) + if (answer is not None and answer in code_solution.values()): + #code = [k for k, v in code_solution.items() if v == answer][0] + alliance.change_score(10) + else: + msg = {"alliance": alliance.name} + lcm_send(LCM_TARGETS.SENSORS, SENSORS_HEADER.FAILED_POWERUP, msg) + # msg2 = {"alliance": alliance.name, "feedback": False} + # lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.CODE_FEEDBACK, msg2) +def apply_code(args): + ''' + Send Scoreboard the new score if the answer is correct #TODO + ''' + alliance = ALLIANCES[args["alliance"]] + answer = int(args["answer"]) if (answer is not None and answer in code_solution.values()): code = [k for k, v in code_solution.items() if v == answer][0] - msg = {"alliance": alliance, "effect": code_effect[code]} + if code_effect[code] == EFFECTS.TWIST: + if alliance.name == ALLIANCE_COLOR.BLUE: + msg = {"alliance": ALLIANCE_COLOR.GOLD, "effect": code_effect[code]} + else: + msg = {"alliance": ALLIANCE_COLOR.BLUE, "effect": code_effect[code]} + else: + msg = {"alliance": alliance.name, "effect": code_effect[code]} lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.APPLIED_EFFECT, msg) else: - msg = {"alliance": alliance} + msg = {"alliance": alliance.name} + # msg2 = {"alliance": alliance.name, "feedback": False} lcm_send(LCM_TARGETS.SENSORS, SENSORS_HEADER.FAILED_POWERUP, msg) + # lcm_send(LCM_TARGETS.TABLET, TABLET_HEADER.CODE_FEEDBACK, msg2) def end_teleop(args): + """Ending teleop""" blue_robots_disabled = False gold_robots_disabled = False - if PERKS.TAFFY in alliance_perks(alliances[ALLIANCE_COLOR.BLUE]): - extended_teleop_timer.start_timer(CONSTANTS.TAFFY_TIME) + if PERKS.TAFFY not in alliance_perks(ALLIANCES[ALLIANCE_COLOR.BLUE]): blue_robots_disabled = True - elif PERKS.TAFFY in alliance_perks(alliances[ALLIANCE_COLOR.GOLD]): - extended_teleop_timer.start_timer(CONSTANTS.TAFFY_TIME) - gold_robots_disabled = False + if PERKS.TAFFY not in alliance_perks(ALLIANCES[ALLIANCE_COLOR.GOLD]): + gold_robots_disabled = True + if (PERKS.TAFFY in alliance_perks(ALLIANCES[ALLIANCE_COLOR.BLUE]) or PERKS.TAFFY + in alliance_perks(ALLIANCES[ALLIANCE_COLOR.GOLD])): + EXTENDED_TELEOP_TIMER.start_timer(CONSTANTS.TAFFY_TIME) + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.STAGE_TIMER_START, + {"time" : CONSTANTS.TAFFY_TIME}) else: to_end(args) if gold_robots_disabled: - disable_robot({"team_number":alliances[ALLIANCE_COLOR.GOLD].team_1_number}) - disable_robot({"team_number":alliances[ALLIANCE_COLOR.GOLD].team_2_number}) + disable_robot({"team_number":ALLIANCES[ALLIANCE_COLOR.GOLD].team_1_number}) + disable_robot({"team_number":ALLIANCES[ALLIANCE_COLOR.GOLD].team_2_number}) if blue_robots_disabled: - disable_robot({"team_number":alliances[ALLIANCE_COLOR.BLUE].team_1_number}) - disable_robot({"team_number":alliances[ALLIANCE_COLOR.BLUE].team_2_number}) + disable_robot({"team_number":ALLIANCES[ALLIANCE_COLOR.BLUE].team_1_number}) + disable_robot({"team_number":ALLIANCES[ALLIANCE_COLOR.BLUE].team_2_number}) def alliance_perks(alliance): return (alliance.perk_1, alliance.perk_2, alliance.perk_3) def apply_perks(args): - alliance = args['alliance'] + alliance = ALLIANCES[args['alliance']] alliance.perk_1 = args['perk_1'] alliance.perk_2 = args['perk_2'] alliance.perk_3 = args['perk_3'] + msg = {"alliance": args['alliance'], "perk_1":args['perk_1'], + "perk_2":args['perk_2'], "perk_3":args['perk_3']} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.PERKS_SELECTED, msg) def launch_button_triggered(args): - ## TODO: This - pass + ''' + check if allowed once every 30 seconds, give one of the codes to the correct + alliance through Dawn, update scoreboard + ''' + try: + alliance = ALLIANCES[args['alliance']] + button = args["button"] + l_b = alliance.name + "_" + str(button) + if not TIMER_DICTIONARY[l_b].is_running(): + msg = {"alliance": alliance.name, "button": button} + code = next_code() + client = clients.clients[int(MASTER_ROBOTS[alliance.name])] + if client: + client.run_challenge(code) + STUDENT_DECODE_TIMER.start_timer(CONSTANTS.STUDENT_DECODE_TIME) + TIMER_DICTIONARY[l_b].start_timer(CONSTANTS.COOLDOWN) + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.LAUNCH_BUTTON_TIMER_START, msg) + except Exception as exc: + log(exc) + +def auto_launch_button_triggered(args): + """trigger automatic launch button""" + ## mark button as dirty, sent to sc (both things) + ## Isn't this already done in auto_apply_code? + try: + alliance = ALLIANCES[args['alliance']] + button = args["button"] + temp_str = alliance.name + "_" + str(button) + if not BUTTONS[temp_str]: + msg = {"alliance": alliance.name, "button": button} + code = next_code() + client = clients.clients[int(MASTER_ROBOTS[alliance.name])] + if client: + client.run_challenge(code, timeout=1) + + STUDENT_DECODE_TIMER.start_timer(CONSTANTS.STUDENT_DECODE_TIME) + BUTTONS[temp_str] = True + msg = {"alliance": alliance.name, "button": button} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.LAUNCH_BUTTON_TIMER_START, msg) + except Exception as exc: + log(exc) -def final_score(args): - ## TODO: This - pass -def game_perks(args): - ## TODO: This - pass +def final_score(args): + ''' + send shepherd the final score, send score to scoreboard + ''' + blue_final = args['blue_score'] + gold_final = args['gold_score'] + ALLIANCES[ALLIANCE_COLOR.GOLD].score = gold_final + ALLIANCES[ALLIANCE_COLOR.BLUE].score = blue_final + msg = {"alliance": ALLIANCE_COLOR.GOLD, "amount": gold_final} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.SCORE, msg) + msg = {"alliance": ALLIANCE_COLOR.BLUE, "amount": blue_final} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.SCORE, msg) + + +def overdrive_triggered(args): + """Trigger Overdrive""" + size = random.choice(CONSTANTS.CRATE_SIZES) + msg = {"size": size} + lcm_send(LCM_TARGETS.SCOREBOARD, SCOREBOARD_HEADER.OVERDRIVE_START, msg) + print("overdrive is active for the next 30 seconds for "+size+" size crates.") + audio.play_horn() + +def set_connections(args): + """Set connections""" + #pylint: disable=undefined-variable, not-an-iterable + team = args["team_number"] + connection = boolean(args["connection"]) + dirty = False + for alliance in ALLIANCES.values: + if team == alliance.team_1_number: + if alliance.team_1_connection != connection: + alliance.team_1_connection = connection + dirty = True + if team == alliance.team_2_number: + if alliance.team_2_connection != connection: + alliance.team_2_connection = connection + dirty = True + if dirty: + send_connections(None) + +def send_connections(args): + """Send connections""" + pass #pylint: disable=unnecessary-pass + # msg = {"g_1_connection" : ALLIANCES[ALLIANCE_COLOR.GOLD].team_1_connection, + # "g_2_connection" : ALLIANCES[ALLIANCE_COLOR.GOLD].team_2_connection, + # "b_1_connection" : ALLIANCES[ALLIANCE_COLOR.BLUE].team_1_connection, + # "b_2_connection" : ALLIANCES[ALLIANCE_COLOR.BLUE].team_2_connection} + # lcm_send(LCM_TARGETS.UI, UI_HEADER.CONNECTIONS, msg) ########################################### # Event to Function Mappings for each Stage ########################################### -setup_functions = { +SETUP_FUNCTIONS = { SHEPHERD_HEADER.SETUP_MATCH: to_setup, + SHEPHERD_HEADER.SCORE_ADJUST : score_adjust, SHEPHERD_HEADER.GET_MATCH_INFO : get_match, SHEPHERD_HEADER.START_NEXT_STAGE: to_perk_selection } -perk_selection_functions = { +PERK_SELECTION_FUNCTIONS = { SHEPHERD_HEADER.RESET_MATCH : reset, SHEPHERD_HEADER.APPLY_PERKS: apply_perks, - SHEPHERD_HEADER.START_NEXT_STAGE: to_auto + SHEPHERD_HEADER.MASTER_ROBOT: set_master_robot, + SHEPHERD_HEADER.STAGE_TIMER_END: to_auto_wait, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections } -auto_functions = { +AUTO_WAIT_FUNCTIONS = { + SHEPHERD_HEADER.RESET_MATCH : reset, + SHEPHERD_HEADER.SCORE_ADJUST : score_adjust, + SHEPHERD_HEADER.APPLY_PERKS: apply_perks, + SHEPHERD_HEADER.MASTER_ROBOT: set_master_robot, + SHEPHERD_HEADER.CODE_APPLICATION : auto_apply_code, + SHEPHERD_HEADER.GET_SCORES : get_score, + SHEPHERD_HEADER.START_NEXT_STAGE : to_auto, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections +} + +AUTO_FUNCTIONS = { SHEPHERD_HEADER.RESET_MATCH : reset, SHEPHERD_HEADER.STAGE_TIMER_END : to_wait, - SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED : launch_button_triggered, - SHEPHERD_HEADER.CODE_APPLICATION : apply_code, - SHEPHERD_HEADER.ROBOT_OFF : disable_robot + SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED : auto_launch_button_triggered, + SHEPHERD_HEADER.CODE_APPLICATION : auto_apply_code, + SHEPHERD_HEADER.ROBOT_OFF : disable_robot, + SHEPHERD_HEADER.CODE_RETRIEVAL : bounce_code, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections } -wait_functions = { +WAIT_FUNCTIONS = { SHEPHERD_HEADER.RESET_MATCH : reset, SHEPHERD_HEADER.SCORE_ADJUST : score_adjust, SHEPHERD_HEADER.GET_SCORES : get_score, - SHEPHERD_HEADER.START_NEXT_STAGE : to_teleop + SHEPHERD_HEADER.START_NEXT_STAGE : to_teleop, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections } -teleop_functions = { +TELEOP_FUNCTIONS = { SHEPHERD_HEADER.RESET_MATCH : reset, - SHEPHERD_HEADER.STAGE_TIMER_END : to_end, + SHEPHERD_HEADER.STAGE_TIMER_END : end_teleop, SHEPHERD_HEADER.LAUNCH_BUTTON_TRIGGERED : launch_button_triggered, SHEPHERD_HEADER.CODE_APPLICATION : apply_code, SHEPHERD_HEADER.ROBOT_OFF : disable_robot, - SHEPHERD_HEADER.END_EXTENDED_TELEOP: to_end + SHEPHERD_HEADER.END_EXTENDED_TELEOP : to_end, + SHEPHERD_HEADER.TRIGGER_OVERDRIVE : overdrive_triggered, + SHEPHERD_HEADER.CODE_RETRIEVAL : bounce_code, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections } -end_functions = { +END_FUNCTIONS = { SHEPHERD_HEADER.RESET_MATCH : reset, SHEPHERD_HEADER.SCORE_ADJUST : score_adjust, SHEPHERD_HEADER.GET_SCORES : get_score, SHEPHERD_HEADER.SETUP_MATCH : to_setup, SHEPHERD_HEADER.GET_MATCH_INFO : get_match, - SHEPHERD_HEADER.FINAL_SCORE : final_score -} - -perk_selection_functions = { - SHEPHERD_HEADER.GAME_PERKS : game_perks + SHEPHERD_HEADER.FINAL_SCORE : final_score, + SHEPHERD_HEADER.ROBOT_CONNECTION_STATUS: set_connections, + SHEPHERD_HEADER.REQUEST_CONNECTIONS: send_connections } ########################################### # Evergreen Variables ########################################### -game_state = STATE.END -game_timer = Timer(TIMER_TYPES.MATCH) -extended_teleop_timer = Timer(TIMER_TYPES.EXTENDED_TELEOP) +GAME_STATE = STATE.END +GAME_TIMER = Timer(TIMER_TYPES.MATCH) +EXTENDED_TELEOP_TIMER = Timer(TIMER_TYPES.EXTENDED_TELEOP) -match_number = -1 -alliances = {ALLIANCE_COLOR.GOLD: None, ALLIANCE_COLOR.BLUE: None} -events = None +MATCH_NUMBER = -1 +ALLIANCES = {ALLIANCE_COLOR.GOLD: None, ALLIANCE_COLOR.BLUE: None} +EVENTS = None + +LAST_HEADER = None ########################################### # Game Specific Variables ########################################### +BUTTONS = {'gold_1': False, 'gold_2': False, 'blue_1': False, 'blue_2': False} +STARTING_SPOTS = ["unknown", "unknown", "unknown", "unknown"] +LAUNCH_BUTTON_TIMER_GOLD_1 = Timer(TIMER_TYPES.LAUNCH_BUTTON) +LAUNCH_BUTTON_TIMER_GOLD_2 = Timer(TIMER_TYPES.LAUNCH_BUTTON) +LAUNCH_BUTTON_TIMER_BLUE_1 = Timer(TIMER_TYPES.LAUNCH_BUTTON) +LAUNCH_BUTTON_TIMER_BLUE_2 = Timer(TIMER_TYPES.LAUNCH_BUTTON) +TIMER_DICTIONARY = {'gold_1': LAUNCH_BUTTON_TIMER_GOLD_1, 'gold_2': LAUNCH_BUTTON_TIMER_GOLD_2, + 'blue_1': LAUNCH_BUTTON_TIMER_BLUE_1, 'blue_2': LAUNCH_BUTTON_TIMER_BLUE_2} +MASTER_ROBOTS = {ALLIANCE_COLOR.BLUE: None, ALLIANCE_COLOR.GOLD: None} +STUDENT_DECODE_TIMER = Timer(TIMER_TYPES.STUDENT_DECODE) -#nothing +OVERDRIVE_TIMER = Timer(TIMER_TYPES.OVERDRIVE_DELAY) +CODES_USED = [] +#nothing def main(): + """Main function""" parser = argparse.ArgumentParser(description='PiE field control') parser.add_argument('--version', help='Prints out the Shepherd version number.', action='store_true') diff --git a/shepherd/Timer.py b/shepherd/Timer.py index 0ae809b7..26a9fc8d 100644 --- a/shepherd/Timer.py +++ b/shepherd/Timer.py @@ -24,10 +24,8 @@ def run(self): if self.queue and self.queue[0].end_time < time.time(): Timer.queueLock.acquire() event = heapq.heappop(self.queue) - if event.timer_type == TIMER_TYPES.MATCH: - LCM.lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.STAGE_TIMER_END) - if event.timer_type == TIMER_TYPES.EXTENDED_TELEOP: - LCM.lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.END_EXTENDED_TELEOP) + if event.timer_type is not None and event.timer_type["NEEDS_FUNCTION"]: + LCM.lcm_send(LCM_TARGETS.SHEPHERD, event.timer_type["FUNCTION"]) event.active = False Timer.queueLock.release() for timer in self.queue: @@ -81,7 +79,6 @@ def start_timer(self, duration): self.active = True Timer.queueLock.release() - def reset(self): """Stops the current timer (if any) and sets timer to inactive""" if self.active and self.reset_all_count == Timer.globalResetCount: diff --git a/shepherd/Utils.py b/shepherd/Utils.py index 8dd64a0c..b2b29a46 100644 --- a/shepherd/Utils.py +++ b/shepherd/Utils.py @@ -1,28 +1,55 @@ # pylint: disable=invalid-name class SHEPHERD_HEADER(): START_NEXT_STAGE = "start_next_stage" + # START_NEXT_STAGE{}: starts the next stage + RESET_CURRENT_STAGE = "reset_current_stage" + # RESET_CURRENT_STAGE{}: resets the current stage + RESET_MATCH = "reset_match" + # RESET_MATCH{}: resets the current match GET_MATCH_INFO = "get_match_info" + # GET_MATCH_INFO{match_number}: gets match info for given match number + SETUP_MATCH = "setup_match" + # SETUP_MATCH{b1name, b1#, b2name, b2#, g1name, g1#, g2name, g2#, match#}: + # sets up the match given the corresponding info about the teams and match number + # also has {g1_custom_ip, g2_custom_ip, b1_custom_ip, b2_custom_ip} - STOP_ROBOT = "stop_robot" + GET_CONNECTION_STATUS = "get_connection_status" + # GET_CONNECTION_STATUS{}: requested from the Staff UI to check robot + # connection statuses GET_SCORES = "get_scores" + # GET_SCORES{}: gets scores of the match + SCORE_ADJUST = "score_adjust" + # SCORE_ADJUST{blue_score, gold_score}: adjusts the current scores to the input scores STAGE_TIMER_END = "stage_timer_end" + # STAGE_TIMER_END{}: ends the stage's timer ROBOT_OFF = "robot_off" + # ROBOT_OFF{team_number}: takes in team number and disables their robot END_EXTENDED_TELEOP = "end_extended_teleop" + # END_EXTENDED_TELEOP{}: ends the extended teloperated period LAUNCH_BUTTON_TRIGGERED = "launch_button_triggered" + # LAUNCH_BUTTON_TRIGGERED{alliance, button}: takes in an alliance color and button number + # and activates the corresponding launch button timer + + CODE_RETRIEVAL = "code_retrieval" + # CODE_RETRIEVAL{alliance, result}: retrieves code (from sensors.py) + CODE_APPLICATION = "code_application" + # CODE_APPLICATION{alliance, result}: applies code (from sensors.py) APPLY_PERKS = "apply_perks" - GAME_PERKS = "game_perks" + # APPLY_PERKS{alliance, perk_1, perk_2, perk_3}: applies the chosen perks + # to the given alliance + MASTER_ROBOT = "master_robot" FINAL_SCORE = "final_score" @@ -30,6 +57,14 @@ class SHEPHERD_HEADER(): # ASSIGN_TEAMS{g1num, g2num, b1num, b2num} TEAM_RETRIEVAL = "team_retrieval" # TEAM_RETRIEVAL{} + TRIGGER_OVERDRIVE = "trigger_overdrive" + #TRIGGER_OVERDRIVE{size} + + ROBOT_CONNECTION_STATUS = "robot_connection_status" + #ROBOT_CONNECTION_STATUS{team_number, connection[True/False]} + + REQUEST_CONNECTIONS = "request_connections" + #REQUEST_CONNECTIONS{} # pylint: disable=invalid-name class SENSORS_HEADER(): @@ -37,22 +72,30 @@ class SENSORS_HEADER(): # pylint: disable=invalid-name class DAWN_HEADER(): - ROBOT_STATE = "robot_state" CODES = "codes" - # CODES{codes_solutions} - HEARTBEAT = "heartbeat" DECODE = "decode" - # DECODE{alliance, tag} - SPECIFIC_ROBOT_STATE = "specific_robot_state" - # SPECIFIC_ROBOT_STATE{team_number, autonomous, enabled} + SPECIFIC_ROBOT_STATE = "srt" MASTER = "master" - # MASTER{alliance, team_number} + IP_ADDRESS = "ip_address" + ROBOT_STATE = "rs" + HEARTBEAT = "heartbeat" + RESET = "reset" + #TODO this^ +class RUNTIME_HEADER(): + SPECIFIC_ROBOT_STATE = "specific_robot_state" + # SPECIFIC_ROBOT_STATE{team_number, autonomous, enabled} + # robot ip is 192.168.128.teamnumber + DECODE = "decode" + # DECODE{team_number, seed} # pylint: disable=invalid-name class UI_HEADER(): TEAMS_INFO = "teams_info" SCORES = "scores" + CONNECTIONS = "connections" + #CONNECTIONS{g_1_connection[True/False], g_2_connection[True/False], + # b_1_connection[True/False], b_2_connection[True/False]} # pylint: disable=invalid-name class SCOREBOARD_HEADER(): @@ -69,15 +112,34 @@ class SCOREBOARD_HEADER(): # PERKS_SELECTED{alliance, perk_1, perk_2, perk_3} APPLIED_EFFECT = "applied_effect" # APPLIED_EFFECT{alliance, effect} + OVERDRIVE_START = "overdrive_start" + # OVERDRIVE_START{} + +class TABLET_HEADER(): + TEAMS = "teams" + #{b1num, b2num, g1num, g2num} + CODE = "code" + #{alliance, code} + COLLECT_PERKS = "collect_perks" + #{} + COLLECT_CODES = "collect_codes" + #{} + RESET = "reset" + #{} # pylint: disable=invalid-name class CONSTANTS(): - PERK_SELECTION_TIME = 15 - AUTO_TIME = 30 - TELEOP_TIME = 180 - SPREADSHEET_ID = "1F_fRPZ2Whe3f8ssniqh1uWFfc8dU8LfElY51R4EtJDY" - CSV_FILE_NAME = "Sheets/schedule.csv" + PERK_SELECTION_TIME = 30 # actually supposed to be 30 + AUTO_TIME = 30 # 30 + TELEOP_TIME = 180 # 180 + OVERDRIVE_TIME = 30 + SPREADSHEET_ID = "1vurNOrlIIeCHEtK5aJVDfHrRM1AC2qWvIbtWqUgnmLk" + CSV_FILE_NAME = "Sheets/fc2019.csv" TAFFY_TIME = 15 + TWIST_CHANCE = .3 #a value 0= 1023 && button1Pressed == false) { + Serial.println("b,1"); + button1Pressed = true; + } + if (buttonState2 >= 1023 && button2Pressed == false){ + Serial.println("b,2"); + button2Pressed = true; + } + + if(button1Pressed && buttonState1 == 0){ + button1Pressed = false; + } + + if(button2Pressed && buttonState2 == 0){ + button2Pressed = false; + } + +} diff --git a/shepherd/buttons/buttons_gold.ino b/shepherd/buttons/buttons_gold.ino new file mode 100644 index 00000000..917e035d --- /dev/null +++ b/shepherd/buttons/buttons_gold.ino @@ -0,0 +1,45 @@ +// buttons for gold side + +// constants won't change. They're used here to set pin numbers: +const int buttonPin1 = 10; // the number of the pushbutton pin +const int buttonPin2 = 9; +const int ledPin = 13; // the number of the LED pin + +// variables will change: +int buttonState1 = 0; // variable for reading the pushbutton status +int buttonState2 = 0; + +bool button1Pressed = false; +bool button2Pressed = false; + +void setup() { + // initialize the LED pin as an output: + // pinMode(ledPin, OUTPUT); + // initialize the pushbutton pin as an input: + pinMode(buttonPin1, INPUT); + pinMode(buttonPin2, INPUT); + Serial.begin(9600); +} + +void loop() { + // read the state of the pushbutton value: + buttonState1 = analogRead(buttonPin1); + buttonState2 = analogRead(buttonPin2); + if (buttonState1 >= 1023 && button1Pressed == false) { + Serial.println("g,1"); + button1Pressed = true; + } + if (buttonState2 >= 1023 && button2Pressed == false){ + Serial.println("g,2"); + button2Pressed = true; + } + + if(button1Pressed && buttonState1 == 0){ + button1Pressed = false; + } + + if(button2Pressed && buttonState2 == 0){ + button2Pressed = false; + } + +} diff --git a/shepherd/dawn_server.py b/shepherd/dawn_server.py index 21ed2bb6..fff7994b 100644 --- a/shepherd/dawn_server.py +++ b/shepherd/dawn_server.py @@ -8,12 +8,19 @@ from Utils import * from LCM import * -HOST_URL = "0.0.0.0" +HOST_URL = "192.168.128.64" # "0.0.0.0" PORT = 7000 +#TODO work on this, new headers and deprecated headers. + app = Flask(__name__) app.config['SECRET_KEY'] = 'omegalul!' socketio = SocketIO(app) +master_robots = {ALLIANCE_COLOR.BLUE: 0, ALLIANCE_COLOR.GOLD:0} + +@socketio.on('dawn-to-server-alliance-codes') +def ui_to_server_setup_match(alliance_codes): + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.CODE_APPLICATION, json.loads(alliance_codes)) def receiver(): events = gevent.queue.Queue() @@ -26,8 +33,24 @@ def receiver(): print("RECEIVED:", event) if eventDict["header"] == DAWN_HEADER.ROBOT_STATE: socketio.emit(DAWN_HEADER.ROBOT_STATE, event) - # else: - # socketio.emit(DAWN_HEADER.CODES, event) + elif eventDict["header"] == DAWN_HEADER.CODES: + socketio.emit(DAWN_HEADER.CODES, event) + elif eventDict["header"] == DAWN_HEADER.RESET: + master_robots[ALLIANCE_COLOR.BLUE] = 0 + master_robots[ALLIANCE_COLOR.GOLD] = 0 + elif eventDict["header"] == DAWN_HEADER.MASTER: + master_robots[eventDict["alliance"]] = int(eventDict["team_number"]) + # socketio.emit(DAWN_HEADER.MASTER, event) + print(master_robots) + # print({"alliance": ALLIANCE_COLOR.BLUE, + # "team_number": master_robots[ALLIANCE_COLOR.BLUE]}) + # print({"alliance": ALLIANCE_COLOR.GOLD, + # "team_number": master_robots[ALLIANCE_COLOR.GOLD]}) + socketio.emit(DAWN_HEADER.MASTER, json.dumps(master_robots)) + # socketio.emit(DAWN_HEADER.MASTER, json.dumps({"alliance": ALLIANCE_COLOR.BLUE, + # "team_number": master_robots[ALLIANCE_COLOR.BLUE]})) + # socketio.emit(DAWN_HEADER.MASTER, json.dumps({"alliance": ALLIANCE_COLOR.GOLD, + # "team_number": master_robots[ALLIANCE_COLOR.GOLD]})) socketio.emit(DAWN_HEADER.HEARTBEAT, json.dumps({"heartbeat" : 1})) socketio.sleep(1) diff --git a/shepherd/installlcm b/shepherd/installlcm index e2feb483..ae325fb9 100755 --- a/shepherd/installlcm +++ b/shepherd/installlcm @@ -16,6 +16,11 @@ make sudo make install sudo ldconfig +cd lcm-python +python3 setup.py build +python3 setup.py install +cd .. + # Cleanup cd .. rm -rf "lcm-$lcm_version" diff --git a/shepherd/perks_server.py b/shepherd/perks_server.py new file mode 100644 index 00000000..03a08e7d --- /dev/null +++ b/shepherd/perks_server.py @@ -0,0 +1,71 @@ +import json +import threading +import time +import queue +import gevent # pylint: disable=import-error +from flask import Flask, render_template # pylint: disable=import-error +from flask_socketio import SocketIO, emit, join_room, leave_room, send # pylint: disable=import-error +from Utils import * +from LCM import * + +HOST_URL = "192.168.128.129" +PORT = 5001 + +app = Flask(__name__) +app.config['SECRET_KEY'] = 'omegalul!' +socketio = SocketIO(app, async_mode='gevent') + +@app.route('/') +def hello(): + return "go to /reset.html" + +@app.route('/perksUI.html/') +def perksUI(): + return render_template('perksUI.html') + +@app.route('/submit.html/') +def submit(): + return render_template('submit.html') + +@app.route('/reset.html/') +def reset(): + return render_template('reset.html') + +@socketio.on('ui-to-server-selected-perks') +def ui_to_server_perks(perks): + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.APPLY_PERKS, json.loads(perks)) + print("sending perks:", perks) + +@socketio.on('ui-to-server-master-robot') +#pylint: disable=function-redefined +def ui_to_server_perks(data): + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.MASTER_ROBOT, json.loads(data)) + +@socketio.on('ui-to-server-code') +def ui_to_server_code(data): + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.CODE_APPLICATION, json.loads(data)) + +def receiver(): + + events = gevent.queue.Queue() + lcm_start_read(str.encode(LCM_TARGETS.TABLET), events) + + while True: + if not events.empty(): + event = events.get_nowait() + print("RECEIVED:", event) + if event[0] == TABLET_HEADER.TEAMS: + socketio.emit(TABLET_HEADER.TEAMS, json.dumps(event[1], ensure_ascii=False)) + if event[0] == TABLET_HEADER.RESET: + socketio.emit(TABLET_HEADER.RESET, json.dumps(event[1], ensure_ascii=False)) + if event[0] == TABLET_HEADER.COLLECT_CODES: + socketio.emit(TABLET_HEADER.COLLECT_CODES, json.dumps(event[1], ensure_ascii=False)) + if event[0] == TABLET_HEADER.COLLECT_PERKS: + socketio.emit(TABLET_HEADER.COLLECT_PERKS, json.dumps(event[1], ensure_ascii=False)) + if event[0] == TABLET_HEADER.CODE: + socketio.emit(TABLET_HEADER.CODE, json.dumps(event[1], ensure_ascii=False)) + + socketio.sleep(0.1) + +socketio.start_background_task(receiver) +socketio.run(app, host=HOST_URL, port=PORT) diff --git a/shepherd/runtimeclient.py b/shepherd/runtimeclient.py new file mode 100644 index 00000000..28f3304d --- /dev/null +++ b/shepherd/runtimeclient.py @@ -0,0 +1,115 @@ +import msgpackrpc #pylint: disable=import-error + + +class RuntimeClient: + def __init__(self, host, port): + self.host, self.port, self.client = host, port, None + + def connect(self): + self.client = msgpackrpc.Client(msgpackrpc.Address(self.host, self.port)) + + def disconnect(self): + self.client.close() + self.client = None + + @property + def connected(self): + return self.client is not None + + def set_mode(self, mode=True): + self.client.call('set_mode', mode) + + def set_alliance(self, alliance): + self.client.call('set_alliance', alliance) + + def set_master(self, master): + self.client.call('set_master', master) + + def set_starting_zone(self, zone): + self.client.call('set_starting_zone', zone) + + def run_challenge(self, seed, timeout=1): + self.client.notify('run_challenge', int(seed), timeout) + + def get_challenge_solution(self): + return self.client.call('get_challenge_solution') + + +class RuntimeClientManager: + def __init__(self, blue_alliance, gold_alliance, b1_custom_ip=None, b2_custom_ip=None, + g1_custom_ip=None, g2_custom_ip=None): + custom_ips = (b1_custom_ip, b2_custom_ip, g1_custom_ip, g2_custom_ip) + self.blue_alliance, self.gold_alliance = blue_alliance, gold_alliance + self.clients = {} + for i in range(len(self.blue_alliance+self.gold_alliance)): + if custom_ips[i]: + self.clients[(self.blue_alliance+self.gold_alliance)[i]] =\ + (RuntimeClient(f'{custom_ips[i]}', 6020)) + elif (self.blue_alliance + self.gold_alliance)[i] >= -100: + self.clients[(self.blue_alliance+self.gold_alliance)[i]] =\ + (RuntimeClient(f'192.168.128.{200 +(self.blue_alliance + self.gold_alliance)[i]}', 6020)) #pylint: disable=line-too-long + else: + self.clients[(self.blue_alliance+self.gold_alliance)[i]] = None + for client in self.clients.values(): + if client is not None: + print(client.host) + client.connect() + for team in self.blue_alliance: + client = self.clients[team] + if client: + client.set_alliance('blue') + for team in self.gold_alliance: + client = self.clients[team] + if client: + client.set_alliance('gold') + + def set_starting_zones(self, zones): + for team, zone in zip(self.blue_alliance + self.gold_alliance, zones): + if self.clients[team]: + self.clients[team].set_starting_zone(zone) + + def set_mode(self, mode): + for client in self.clients.values(): + if client: + print('Setting mode for client:', client.host) + client.set_mode(mode) + + def get_challenge_solutions(self): + return {team: (client.get_challenge_solution() if client else None) for team, + client in self.clients.items()} + + def set_master_robots(self, blue_team, gold_team): + """ + blue_master = self.clients[blue_team] + if blue_master: + blue_master.set_master() + gold_master = self.clients[gold_team] + if gold_master: + gold_master.set_master()""" + + +""" +client = RuntimeClient('192.168.128.107', 6020) +client.connect() +import time +from Code import decode +x = 1 +client.run_challenge(x) +time.sleep(0.2) +print('Robot answer:', client.get_challenge_solution()) +print('Authoritative answer:', decode(x)) +""" #pylint: disable=pointless-string-statement + +# client = RuntimeClient('192.168.128.115', 6020) +# client.connect() +# client.set_mode('idle') + +# print('OK!') +# client.set_alliance('blue') +# client.set_starting_zone('left') +# client.run_challenge(123) +# time.sleep(0.2) +# print(client.get_challenge_solution()) +# time.sleep(1) +# client.run_challenge(123) +# print(client.get_challenge_solution()) diff --git a/shepherd/scoreboard_server.py b/shepherd/scoreboard_server.py index 871cd53e..22581053 100644 --- a/shepherd/scoreboard_server.py +++ b/shepherd/scoreboard_server.py @@ -1,19 +1,19 @@ import json import threading import time -import queue -import gevent # pylint: disable=import-error +import gevent #pylint: disable=import-error +import gevent.queue # pylint: disable=import-error from flask import Flask, render_template # pylint: disable=import-error from flask_socketio import SocketIO, emit, join_room, leave_room, send # pylint: disable=import-error from Utils import * from LCM import * -HOST_URL = "0.0.0.0" +HOST_URL = "192.168.128.129" # "127.0.0.1" PORT = 5500 app = Flask(__name__) app.config['SECRET_KEY'] = 'omegalul!' -socketio = SocketIO(app) +socketio = SocketIO(app, async_mode='gevent') @app.route('/') def hello(): @@ -45,6 +45,26 @@ def receiver(): elif event[0] == SCOREBOARD_HEADER.STAGE_TIMER_START: socketio.emit(SCOREBOARD_HEADER.STAGE_TIMER_START, json.dumps(event[1], ensure_ascii=False)) + + elif event[0] == SCOREBOARD_HEADER.STAGE: + socketio.emit(SCOREBOARD_HEADER.STAGE, + json.dumps(event[1], ensure_ascii=False)) + + elif event[0] == SCOREBOARD_HEADER.LAUNCH_BUTTON_TIMER_START: + socketio.emit(SCOREBOARD_HEADER.LAUNCH_BUTTON_TIMER_START, + json.dumps(event[1], ensure_ascii=False)) + + elif event[0] == SCOREBOARD_HEADER.PERKS_SELECTED: + socketio.emit(SCOREBOARD_HEADER.PERKS_SELECTED, + json.dumps(event[1], ensure_ascii=False)) + + elif event[0] == SCOREBOARD_HEADER.APPLIED_EFFECT: + socketio.emit(SCOREBOARD_HEADER.APPLIED_EFFECT, + json.dumps(event[1], ensure_ascii=False)) + + elif event[0] == SCOREBOARD_HEADER.OVERDRIVE_START: + socketio.emit(SCOREBOARD_HEADER.OVERDRIVE_START, + json.dumps(event[1], ensure_ascii=False)) #if event[0] == SCOREBOARD_HEADER.ALL_INFO): # socketio.emit('server-to-gui-all-info', json.dumps(event[1], ensure_ascii=False)) socketio.sleep(0.1) diff --git a/shepherd/server.py b/shepherd/server.py index d620a4a9..6b60c1a6 100644 --- a/shepherd/server.py +++ b/shepherd/server.py @@ -13,7 +13,7 @@ app = Flask(__name__) app.config['SECRET_KEY'] = 'omegalul!' -socketio = SocketIO(app) +socketio = SocketIO(app, async_mode="gevent") @app.route('/') def hello_world(): @@ -27,9 +27,14 @@ def score_adjustment(): def staff_gui(): return render_template('staff_gui.html') +@app.route('/stage_control.html/') +def stage_control(): + return render_template('stage_control.html') + @socketio.on('join') def handle_join(client_name): print('confirmed join: ' + client_name) + lcm_send(LCM_TARGETS.SHEPHERD, SHEPHERD_HEADER.REQUEST_CONNECTIONS) #Score Adjustment @socketio.on('ui-to-server-scores') @@ -71,6 +76,8 @@ def receiver(): socketio.emit('server-to-ui-teamsinfo', json.dumps(event[1], ensure_ascii=False)) elif event[0] == UI_HEADER.SCORES: socketio.emit('server-to-ui-scores', json.dumps(event[1], ensure_ascii=False)) + elif event[0] == UI_HEADER.CONNECTIONS: + socketio.emit('server-to-ui-connections', json.dumps(event[1], ensure_ascii=False)) socketio.sleep(0.1) socketio.start_background_task(receiver) diff --git a/shepherd/static/AIRHORNMLG.wav b/shepherd/static/AIRHORNMLG.wav new file mode 100644 index 00000000..7c64266e --- /dev/null +++ b/shepherd/static/AIRHORNMLG.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dc7674f6ebe9b55a9b1aed555c255d11b8a4d09132c81191ea5d7efc7f60237 +size 885002 diff --git a/shepherd/static/Bar.png b/shepherd/static/Bar.png new file mode 100644 index 0000000000000000000000000000000000000000..932083b59643fc2e4ca93d4f1eb5b5004a39643c GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^AT|>R6Oeqze5)NuaTa()7Bet#3xhBt!>lS|xv6<2KrRD=b5UwyNotBhd1gt5g1e`0K#E=} lJ5Zd*)5S4_<9c$!0u~_8j)9STdPXlugQu&X%Q~loCID#-AT$5~ literal 0 HcmV?d00001 diff --git a/shepherd/static/Blank.png b/shepherd/static/Blank.png new file mode 100644 index 0000000000000000000000000000000000000000..f6cbf9e2faf3701c898420d0cdcbbc9db66d6114 GIT binary patch literal 1413 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV4T3g1Qgjg(X9wbaTa()7Bet#3xhBt!>lVnx2KC^NX4zUR}BRj7&wj?9N7Q-I4kpXj~AExf*200oyfqzBLPAN2_ST! zff0xpnAt!GA~BNXAc2BCTtG`Tf2q+|*84^+AoS&PUnpXnkGB7w7r6!i7rYMwWmSiZnd-?{X z=%um)#h-e*IEGZ*dV86XlYxPQ#c*r=bMrQi=$7W!Dy(-TIS;fXI1MB=P)u;56#vL! Yysp7~^!T<#eV~x=boFyt=akR{0MV^^>Hq)$ literal 0 HcmV?d00001 diff --git a/shepherd/static/BlueLeft.png b/shepherd/static/BlueLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd6a058a141ecb95954268d0be76c4e19b34304 GIT binary patch literal 643 zcmV-}0(||6P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00rW{kK~zXf?Uc<+lu;Ci{Wk&^LYqJrmbeK7 zZKJEAkT$k(5!NbD$yJNOg@jg$U!;LXWuW2*;Rl5#s3?fGFv~<;n1(ZpQZ&aIXM8$m z?u#(amjl;nGY?#Nnfo%&J?H-3lg57{B~BVCangt>_IqJ#9#%hr@2~TtC8CN0NAP0= z-du;yB3S$EY*-?q*zbe&3Ft0?R|PQk7!Lk8o0bR@2mG)x1MhD`a}ErZ!_EdAA3HBt zB22uy2_GIvrPpA%5`M3XG~jGnBt)#$F7_B{e;K&HCswH*P(!%qg6*&1-E%e~a3a<_ zoUDbnH=*gWw79|?VyXWOtIxc<@ET?sVYCX~-GXm}aO80WrwEF*(%Dw1&48K<@H8Fj zGvxqR&b}J6p&?72<4;*x~&33zsbo-l%9ZRhfk`GdNP(3S@uA4vzE!PN8kYr0+z z-eM|V>@{7OYnM>|jGm8^R_oo&cglBr1KRT?SP#J^ckJ1PL%FMX%Xg4i2t&f9lWJuY zx{9GC*L+GEFue-fgoqU#9y+CZOQE9>2JXSHFJ_Y2BuuQRL}i2bO;Eb;$jn}_TX{sW zq7v5<^xcJ*S7E#w_TA2=1)_=-mAjWE-F4Fb@z?_)QDTY}O{xwT@4or$Y!O#{UZliH dBPC7}@DB$>rTvIt&A|Ww002ovPDHLkV1n&@7;XRn literal 0 HcmV?d00001 diff --git a/shepherd/static/BlueRight.png b/shepherd/static/BlueRight.png new file mode 100644 index 0000000000000000000000000000000000000000..bb0182ec548b903b5220291bfb120105fb51a7f6 GIT binary patch literal 644 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 literal 0 HcmV?d00001 diff --git a/shepherd/static/BlueTwisted.xcf b/shepherd/static/BlueTwisted.xcf new file mode 100644 index 00000000..fb1d6a3a --- /dev/null +++ b/shepherd/static/BlueTwisted.xcf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a87059f4d6771c2d36113688d9a965892c5bf288ae21ffb1b9ac499ea0c3f9ce +size 98794 diff --git a/shepherd/static/BlueUp.png b/shepherd/static/BlueUp.png new file mode 100644 index 0000000000000000000000000000000000000000..b58819408634d43f27fbf1ff514c2e5b7100ec3b GIT binary patch literal 653 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

IeIBn(ExUSivy*Ojk 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 literal 0 HcmV?d00001 diff --git a/shepherd/static/GoldTwisted.png b/shepherd/static/GoldTwisted.png new file mode 100644 index 0000000000000000000000000000000000000000..7a50d1d549a0c14f93baeb67a88b90a3603190f7 GIT binary patch literal 48008 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 DZxexd literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/DummyPerks/bubblegum.png b/shepherd/static/PerkSelection/assets/DummyPerks/bubblegum.png new file mode 100644 index 0000000000000000000000000000000000000000..b0bb4e3aa2a7f8864e3dfbea0d6db54199051fae GIT binary patch literal 8026 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 literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/DummyPerks/chocolate_covered_espresso_beans.png b/shepherd/static/PerkSelection/assets/DummyPerks/chocolate_covered_espresso_beans.png new file mode 100644 index 0000000000000000000000000000000000000000..05115d012056cdefb54f1c99bb4f0ce94f3a589d GIT binary patch literal 6025 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 Fe*k$Rd)oj2 literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/DummyPerks/diet.png b/shepherd/static/PerkSelection/assets/DummyPerks/diet.png new file mode 100644 index 0000000000000000000000000000000000000000..157a61b18258826444f6bc624581c34d3c6b9886 GIT binary patch literal 8022 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 PHY%$L{C@K>_WQ# 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 Ug2~gp=<)!1T1J{x>dw*s0SmjqDgXcg literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/DummyPerks/minty_fresh_start.png b/shepherd/static/PerkSelection/assets/DummyPerks/minty_fresh_start.png new file mode 100644 index 0000000000000000000000000000000000000000..3bfe8ac0dd9e3030324fc46a8bb2f88dcb0cad66 GIT binary patch literal 2431 zcmeH|`#;nBAHa7?iEshoYYE1 z3#(3Ur_2y7vGMQErSse?cu z4HOcN1}a9GJGKHwoVXkblphk%2zL;f@zXSLP`ToE$_)gnE7-Xaz6}K03i9&_@C5D! zrUnuNgIQxJf8T*IcgL!#s_N>Rni_I#ZGCiJ6V>F)W;U@-dnnE&+kGnxJU{R92|g98IBfT5wG z;o;$-VfHsA?BQ>mZ|o5^2M8{QGr|EpGRoz0N4TRSTpo9HjHd)JpEown=a2KpCnqL= zn3|jvOifJ*1b~H8f@y(pMkt&X0-hGl%*=>HfWM1Gv)`2fp8Gy4o|^+gB3_UvkxC_! zd8u?^etv#IiEMshaY42ulgSnr7iF@gCE4; zvAF>tmv6{7<#L656F>p<^Z)!8bpWTQI|!=uMs5q1eCY{@BX!-gX`mH`m-!70uGP;)8bbU#oxFaZYq_BoN=OX{n z`Zf8_D@jvjrI5v2x(u7Z{`gl%Y=4ic8A{ zzsY*jf2>)J_1q$(A)7HMF&=7GF$IddBEwO!J!FQK=fnB8+LNi-`Rs)+31$qeII<2>G1xFmt|J(6l2zrb5 zUGSdp6OSugMI!P%@%E0`my$E5)DFaJUdtwB?5Q}Lp8Zkowlba~(ro6ktIaE8FeW53 zp59$Vt({^1F>+0f$@h1*v4;Nc?zs@vm`IiKR^H$sEcY+NLMiwr2Fd~RI1OW2Kl-@r zN+A`&k2Ap|w&`miSF7y&w9}d*B<*(s^57P;q0t6bdraQ#QC6YhJ^xI7{xk94^ZM^! zc|#CrNVy7lOYhRj>O*)F9KNp1{k}~HlaOq4yPHSgJtShF=1enEma~A;2$f}9V$b0F z^VsMx2(eNJ#eaqh)Uo!K!Zrn2y1RWLXwPmH!VvXGLRnQ@i-qk}C(1j&nXo1NkTFe*4k3+L?C%y!q5-9Cu!U;$NC&8$eY{QK49_Ikv?QI)4)!|9TTR_2&h_tYmR;W;DeK4PHwf}clDChav$d#;lU)bbzCMyEw9LwKkf^wG9`m2H8dD!{ZoIC+rIsv)Jj5_Riyu4O;uD|xiq!1{jw%(RSsufbVzoaMz zj((^z*fjZz=?f>jU(Eau3HYKD literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/DummyPerks/raspberry_cotton_candy.png b/shepherd/static/PerkSelection/assets/DummyPerks/raspberry_cotton_candy.png new file mode 100644 index 0000000000000000000000000000000000000000..9949242d0e6cdcf4e4c8ab10cb92f679be984e30 GIT binary patch literal 3937 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 uzj=r z$0-i}F-W#D>M{rjbzjh*%#r``s4hzS?g$82z5fB?pmW)O;v^pOdLCNNHXdH)Zq^7c z=Jrk=oKDsrH2j=Aoc#FGc6|s4z+GjKjJCJQU&D9a+B$!zeC-NpSmi-Db?g?zV5odo zyoDk0ijLQ-&g-+WCr7Y$IRr^I!mJEcKw63UAT=Q&VU;O!c#J;tO3l}XcjtM+@184& zgwwGr)is|qy>64hXx!oHsz#4Vg0a!TF?-|nVb+`aCB&!?uQ zl57)FwzsWV{J|Tksj2B>4Eu!iw5+UXw&OX8C!@n)#zzI2e<$@+cD9G7pPobuowkwI z#J7_MQOv#5QuOE_z4hq7n)<#u(HSJG*2XQw!vnrZSX|WG-r4Ck<5tRp7#R4vzISjD z=j6n~#l__&i%U{0pZj=VvezPn_Rlgj$^4r)CZyAd$q_5ig_9H5?aAMebd=BCrupso z&XO+pCKS7{8j}FBAm1H%?KIsDHAjm2O$aUyMdWfp(d5hhTjA1ntfNMuNnvNW_jbvI zhLTc(cr+COH8mHm62zFal_0zmxew*e;!jZ+&$W|~H-{ljQZ=f=C&ZiT7sR0K3jz~7 zdUeWG@>6jS@_}VnKD=;U5DaOnEAemb(*~DIY!D)e818%&zPaCL;Mmq+_xZ~=JCS1! zDr_BaI4(Vu_VDUp29Fj)UtV5*T4!}I4pw-k5PY6ZG|Zbi7k_z|KPUxF2mQsUAYX3@(D8Eq?S5d*r zqQ?D!&qj-Mhfv32|8-A|%9U-^d!48~K*N+@KuBp00)gOJgn^J#^DsV{pfF;#5^9|u z!fYQsdP?Qd*S%i|Gngc>2aC2g?CKCWHkCQBG7iVeq^|f_8O4#88tsRug^>V`I+~&Uh8!RhNUR}Aof*sa;l!yP9pH(;{6e5ZoX0T zr-2zQ=o0}kIsDfGoS_D z3ku$1sn7s1eeLfe}DswUHm@mhj~HqVn5Qpeg(%MdR)J>Cs?N58@j9^ zj_xr$0ez%X_&I^W0 z?5fFbSXC(-p@hUzqsTH43$%|bE9QabXlJtxleS-h5^Tn3EZRvtT*Pq#soZhYVOL@i zG<#vX$h728CU%4;B-%mcA>_upiHP4pxLNU>vO6Iy7NeRx--l937WPu1lWa=SMmUoQ zB-7gsCfNU88>EX-QG@DBlBxBt3aXlj6hLv2Ck(sl3dQ#Zq85eYG$ORPzfoC~rftlw z=EYpsCc@4p2gJa+y0rShe05~L{7D0S49z^&6E?I<#a}t$p+m_^>;%fD^sWQ`2JSzY z(`Tmn5^i_Agjc}G?(1ay4=*mHq|zPfxvLCEqO*P$Oq-O|$73}Y|F=r6&TSz#Wvc_T26S`yFHCM6A( z#8n1YN%%NqtLXW3(`z-1$M=@9FpE`Dq4lh=kt7P?=WYU9<4T*?);>5fGJFT}KD-V{ zr$m*n3;7Ve`SivPIWY_Iw&-M0L-xK9(G{ZA&gal2j*y{>;3)$Z!TgLBY z?Im6K6tLsY6@v&%NK1#U2BrciBr8&TTxSsavL0i|6F9^2+G z7qQeEQo=Q91w3hVFGJtcO(f*71Ar#1?9o+D@YDO--^{y(z=M1Nyz=NMDuN znj|K}AtV8^aPu+}c@83zb~_;97FOWZQV>G#{NF9Lyk%zNlsB2xUnH(nT#3bW8C%AP zpy{h~W6Ik5Bt4L}GBi4#dei2xz<+C_7rQX53@M4Z>%?G-3}STE5- z_n~0*2wm@sGk)s)m)hBn1(@og&yPATW51EcR+zgbgBU2*D1rkjzo`2tNy2}z_m#(-wBm)vcNv|ezJQg$3K1??6Ro}>lhFD zW6af6SNJyT!wQCHBoh{;B(v!5byCUHPPv^yHk_WiNc`Pq2nVp`lswY-H`TQJflni7 zyaYFaV3(#^y?@ehyCQNTnrLFq?ozWt$b4X3{_bYnQ%~~HmYu?f0KUd4cTqpAr1wNI z7Or1gqlYy{Y&F&*jk1x^fqC;=sz*|FJ5SyZ%y=?IaWzPqxXq@n139q}PPt@~n9&#d z^e;K22Nx5hX-jJvAZAa{o5hh=G^ zcBs@X=lCz9kmyakC>I!;FT=1|)BiT0idn>(J|&N?oiKa?{ojJp#AtP z>gI0IQOcYCHZwy3YP}z5^S_VG4C~*P2R&0|ewDAk{u85qa#XS=LNcOv4hA=FI>R^y zZ{@z5og^EASBoP|sv^LK(9KG5elD>}H56Jv-Gl-5W!`si!!}zE#VzCP5*7`ckRdCL z9#};u=S*eO*R+Tkt%h*C16J3F(c(+zcyt09-NcesCNdZ!;@30K)Ym~61ri?WV#`^} zp~nJ``>O8%kN(8#aKc;jeeCb+tC-&{%WSEae{K_byxQuPNq&&IHhDMey!3YIHrveP zC&}l(RhuoWjoY8YKAngPL#M~q+UOqhRdIlT-(t4_i}yJ)eZMb-^QmHrbNHvxzalWM2clctLD zslEzYJS>0TXb7NHyIeNU-9S`yC095AI|<} zRP~q-J)-X9Ba-)6gG`->Yvra}VIomyKAWe2{YONbm7}<%QyrMKlf_l|xceCDnGOUo@s$Z>jJdWuLx(d~ALpG-!9@6>R zy|!jLjp*53%S>L@Q2pnP{6}qa?0dP$lPlk`=;j-@Iz~>pP z$n5F2uJ~ewKL_YjTaJai0gT2ib;UdNU)HD=qd*>0zMRxjAJON|#%+tG@w!57;C$yBP&lT(U2M z*j7I|Sic?f4~u4EloQ-gieu#Wau4lkD$_?nXE~Na4!P31jxSNiM9rH}>iprFkX;(# zpQdrJxj^p$)v&MaS=`fYWcWhg&9*}z;`LQ%x6ZSho?PSu)b?F@^mHTY0+FcbsU}z> zHIi0x+}lUst+q`(*^d@Nz?w#?o%=$(rE7Lpp?HPaq;g@O9(2Qns@_C8#bUk$B*C)w z>7kStqGMATuy<7fLxWhl*uK+Bt8%gU%iY$GgVO9`g=+V`abk&rA2Es&IqkFVXcEFOi8Ca`SL2pO4FLkUJWeaf3mJNgbHQl7+63AQ8fksG>6QYtfwIOyc83xO& za*%ZVL_m-4+gLmg(`))j_&!INR={JK3zJ(wfZTqQeLhuUU5`F97bd!%QJLSo&WmUqhixNU_)hcO zNbd&4DeIq0rO7y$T{LAxYuYf&B`=bolJePLU{Q)fZ`XpTC48?EcHP1nU*?#w=BsmuiUJjD^n1575k|e0y0rE z!*k}0SSR7)HuMIFB%uk!o%H0~v1>gSCH9P2;k4zq_w%3@H|l7~_a#Tc;f5B;34NM* zCS`R2pjFM^nAWmqJXeaX8mQYKm#KBh4Eg>}dwMHShF*T&!O%4`m}tDeMR~y4fPW>? zE#9H2B`MaVc*;)xSe#?i9<(1END=`I!iQ%$00()z{J3zSRvKvLFPxMznEm>P3WQ{Nzohmr} zvv4Rz@1)f+tZKmA4o4?lcQx!zjsB1A?VQ0c8M@3@xsb@_T7t$Q!g+d8N@2 z=~fapT#*5rj|vSm1uf%@L)8&Q^U>3#D89w7AYOF%4W@Aw~?hIDS)=IDf#u81QfE|7N2}!uY2JQ!U{H$#D zq=>UvH`?xrD-^Q$jux!$4IU*Nbtfe|;dTj$^)`2OEGPZ2+2Ttjob8er81H-NOym%s zQVtJ!IQkwOJ{9UqW-W)A#c!{acP=!$U}AtUC4C^FLgg_`>=a7`Wb)Vr45%^g9#^90 z+Un~x6BumQ$MZ)p57(aoW@7@R4>-F zQDP35a346yR`0$?O1lo$ozh|+nl2jA#`d(vhdq5FcFO-u6tG6PbMUD{6Ksg7T16RW zgPVrrD$X|{TVr!qQm>?9*`ebdNQ5^&U@>|~&13mM(9TmRRw^MX3oR4X12s5s@WGiy zQI~83G1uO+(o2b;-Iubaq>`AkR>(rk03L^Lz<|g+Rq=>c`ror0o@$dW*3bCqIKVyR z`;l6ZLy69wHB+~?E)CYJ;y%cTi-p)kQ;UW&^qo>Px*VK_)wC$RG8>(5x1M}gK$4wo z4_Gwy^d+cE(DhBFWq!y`>Yh0{AJx1fQjoct6-WX?CRU>)@MnIj0J2`vFii?u_yLQY8K+!a?vj8BHiK>~d zYtg)CubqL6`nv@W70FUORfgAlN8jG)_)lgTTLoJpm&%g!i#R6VY8JHo_O^HFb|thh zRGWVe?TFZ?NMU&}J?nanvwPllkXD=@G))-yr6qmB!pe-_Ja5NvPa5phux;yYW!`md z=(xVN%}WIOJdhI^ub1yfEe`ea{&pHsq!d0K>a>|DmuRqPI6_y_B4pVah>-?ej=yx> zD+yrg-z$K(c%sMX_yvL(^@iNreZCO4^RyXh1?mlp8}Y>R zIR~QWLROe60REUnu!{oY6jZTF5n>p~llMQHDSJ$0(`tM6)*X=HoPraE4kD{{+1BKJH6t4pJ^M)O1l9tIxVKzv+kOPTu-i{lP>7^{g@8drbrG-e~EXfzH zWeDOS+I|4YpJ6B*tfThS;>nw+;uM&lIabE*Gd!`6Zhr?np%cLtFO^vq+x&@EDFVb+ z+dH{TI=+h8yxM1Jg9T=V3XHV1(oW}l1id8K*J|W`jpT0Tfex@ak3YA8#D~-T1e3a( zlyI(!-g`|eT*^^vBbko1Qk^n7_g=%i!55)<_o~n4ukm7v1cK@p zb%JQAu;3Zm9y~sVo!awcx$vi$JT<_?h)e(TNC3{M`KlN-X}s;@^}wjtbOa%jX+ZIBd^kn zG~J(epP@bEWK?~`%}+->8iG>5s0xkgJE`6GE6|@o#mYT=Wp6@1W?&^a)W>q52a?dW zh;UNj;zk#}d`)y^BvS5Gq}}S?7^31Q!R=uyY-`ytI?Ya){Z7sMaH}}-sn88C*FQD# z(de-=z^QxhC#!$^cl4M2-;_aTnj6%EtrngG2$d>rn5OS4xL@z+&d&5%^lzi^10h2N zGPOTwP_GckNHF7~3$2rISfimXu`LO-5&c7ON{931s^{~$*{|mhkyLl*O3`ME!%lfW|FPu27TT}WJ|IS)UP1j<=Sh;{fS1XDgO(p@ne{s8h8v zvyuJ@@~6ER!XKg(#!-HLgj+4*_t52q2rwzLd*1)af4u5`y}RieeAKx!`;ImvSO#6V z>MCxLIPad%6V7X<2!y{Yd9ht-^%V9zOaY-0a&&SP$xp8+f{0J0B=C|^ZhF4mUMpJal$7Oxe8#_Hmh!HPc^zhqA%@A)&2FNLHZFT_U)$J+~g9NLwK!pU=|!RNxEB z6BJ{R?sg72idGZpeXIBsb&9fyLTC%AQ}ldRT2{Pc2bO3Ut|#HAQ=8j9_MQlfm5DE& zyr! z-HH|mUxT`foLFOzS4p|z0*tni@YSw?iMsOzCj8CnYtKkWwjrQHS$JIMf$7(H7t=PP zM{G)kb>$!sLtnv#bBtMjCu-?LI*s)o+aZ%yD%+>G>nA7i0gpGvS9o~cwJbWHdMtks zOFn+oBxpu%8qfyiABI@rcFy>VZMEm4)eVYmR_2o@g^B@1jxBlq_Ix8@l?xCJ^Qt}3r zq}79p1D3s&DiR+3F{a6gO{txNwRn=b+6~Vu&yS;EgBxQ2wJ19Kk`7|>LSnAb5dvkQ z2JZJCSVRxi4B+Kp{W!BsKlT)-laLF1Z&<+muaR5h>&mbN!;q0WHVq`?VE<+x7O-zb#_Rv}G5&vMA^vY= z&lF^y249VFRoo3nt%fYefBeb7xF_YUrtbu6609;0MRej-^J}D;+8Yhb4Ok6LB)Br% z$AuP768^{nZr8E>YDvoZk;b!kS{?k~S`u&0&iGmleX=Wu<@lO0qCA|xN#6-}^ZjeNs~} z++Aj7Ml(iaC>g3}>-Nd}x4T-9v53RniGU!yI=BIn(V=ezwZhbSZ z;`(wDJHJ&WCARg^lJ^hq-oHVLMXZJY6VgSjct!3y*E3@ej>-Qw6@#EG{~lB=YZm%H E0AZF?^Z)<= literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/assets/icons/BlueTwisted.png b/shepherd/static/PerkSelection/assets/icons/BlueTwisted.png new file mode 100644 index 0000000000000000000000000000000000000000..5e3b17b7bc41e43ad33a26651746490992951b53 GIT binary patch literal 48857 zcmbrmbzGEd)HOUH-O?c~Azczmrywm-BHbb_-635fjijiQw1Bjf0*Z)8cS)CYeS6OH zynlUveed@>b2!J5nYr)l+SlG|t-ba{X{syX<51%u5D0wb2lCno1Zofhfs%-Y0nbPt z46(p}Fw7q+$s?|j|Kzp2Plji(ogWyuArQDE$bV4~nc0-^B&NHvngZq`3MCpX9y&Gc zdw7c0PDkHe&guDcD@S+uBLX4kYGvkbWy#=a=WffOq^zcC$zz3yKrkSblrnx)+rBkjj7AWbm8e~$x$@82sdEuS4V87-pze0By?6tc=W z><}R>(Zp0)pYc|~Cjo(BtBvEE4l;>n{%ywIH>+y~2Y&nzKk#mSd=n>JmH{gS`S?in z+8yVA{`Ucb7)^!<9=8$L|NR{nanS!ffrc&pKTm|9G5q%%XfmjY|N90g50EcGlSxF} z{{Q|q|F8FTAuD+INE-Q$dW89!>?<2M;UVh8GUWgJ`TtiJ#KWzF`QO!kWcu)fJ_*Yb z<$tgA|K`#cUdg`rZ+RA|nMiTE{UnTOI}ZG%T)d_K|6SvqXwBvj$^TjIuE*#G|GNeM zS9{X%_QM(}at*si+J1NeG5&NraX$C~$5Ef$B zr-ex2reQhxy*C5_ZS?ka)bLZKh`7VFay>*#@2SA%i~k8NangJ*j_?L^bki3}2bfWuTQg7m)ll|8Xkxs_UH>wxXp!M#8_xw z#08BjC}5oIkuDKiG;e-TfvZK9G_ncu$L}S2~ zCJsu|NBD@-*$QP=ju^xB?fD_{w2SjJ*`5FXWGs79Pq6W)T+Y~-F7xiQmolLk^Hsfc zq3Z8L8L)oZ3b|X5pvf3vzzy(e#P%1}@G_mX8Q4yFMZ!heQv9 zv^$W@f{*fKXW+7Q#QrpHd(Ufk?R~EK<=Np$LKV5al+>*c(|97&)5ItUw+Qj5v%`%- z?}HU_?=Us45jJ|{Z7wj9dHuS^4GE&X?_oOm={Y+Ghis{C`R-gO;TP)~nS9N5O97WE zxLw#41}s#H=OGNz6{Ex0tr!frbGcuOJ|P4~r5T8jyTCK`>z8)6q(8M&+oiC_r!|zP z(->O4ls@ZHe}5N~(8pj){ddgMFjlV65xIlC5@H-FI8W*w6?}Z|wN~gQI9;bt$M@0) z-rAb1?=7#N!D%rjOz6F#MQT>14{JAfd=B|7Z^-s5x?h|$d3!0Pha6_8jBTAELRwv& zV8(YxqRhC3`WvUPTv|{hslrW_qF24iKk?Ox&|KCMS(opmsBDki;pXm6<$m&|iyqp?qo=j1?>os>V2hm19>^W2%yvO`{wD{jm4S@V4Ux_Gd+N(I2?cTy1h%uS5{^w< z!ZVCvQL4IZ97I@%53al$?)T16;R<*d2f|CWi;3_s7^9g|xeP+ovV`YD(PnZVYX&t5 z3jA#HbkgS{hm%xih!6XpETjJmizH_Wg$d;W1UxEAPIkwFbYFkJSFw4W# zxp#xdO7xav!|7sfteGNCKe+u1*kvn555|b>dZ-?9X zD(e21sP*#b$!DcPP34`-B?(i;I9n#V7 z2Q_{vDlFo3gpjB3Fm4#}P(Yx(#3y{AVO!RNTf=A7NBX<`iHL(aHX5pUusjjk2c42g zFJu8*_=PQ9{5am*4q`)IOWw}zPQc}%Ui0ycZ~EE!4u5Z^&-qq5pBd__DV!LaoYB_JnqAe$>s+!V2RW1){PoJ)W1M!kLnoax9GvUCFY8Tm~+3^ zXvI&8)3JK6=P(EHB17~S7nu>|V*-nBN^|t3+a8=>?w((Mc-kbq-LM!R*5?s7-bT-? z6fdu(b(12g>>1W1VRvXU;x-Qn3gl1kw%(;BOIUNi-40CsTH7J9g!;BY%I356Qg&|c z@Nox%XUy-1Y)v5pcPEt#0B(qkA$*d3Ba$dc`td?ehpDuqBTr8PeZn`T1XiK#*A~5e zaIHD`Mp{}O7AP?>F?aq&KsYz5BCKnuFhWtfySouVoe_kKaCdTxhfQ<+gQs##&g;L6 z+3(z$ucH4&#)g<7k4N5;`+-!gB{S8+ln9#>MH8l@?a*#VT7j$B5puJ>;A?l zXjxCoZ;tkBczEykBaQjJ=R4iBzN2l5rf{U#xwz0YQw+*9*-vmZ*HKe(q=gA#)LHa~7|garsrG;ogsUxw)9 zV(0igU%MC?0Cyg}Gwu5L)TP&W?{DGXkx~kP3qOk)@*wC9&L6^)IDq5EfnCp zjfm>Eb%mJfD0y6JS+5Kk($J9lwF=9tSFa#1nekBq%t*}0h{F8ShQlCkTzSve*UAhT zhCDnkAuA}zlvZdepWK8J?6t@C#$-G}w{)3S8uEd9u4Ek4PL|iZRe4qq#gC`l8uof< z0Lz+I>F-_~3^Lbf6-GXgHc%(%!6iuSOqx zzTHIV(~@JerK_up%w(4FWo2AbZH~%Q{#$3GSgP5gH^aljf7;hIQ+byuM5Jb+!w7WF&fOKl;^_^mazB@;`1H~RSBi$)`7(OVDH)iE@eCI4(3YI3Adia6ey z@cSgb-AW*t6_+7svj90w5}Jj}Xqn2apX=id11{J-Ov*vu4oTOj)^0bf@iF zG6DTI&;tq=0n<_;k3u?eFCsRLoY=9}qgcj zPFQyg#bS~F`GVv93I$vU3>;-;Wq<)#7@^Kh(`JL@G2N&#M4E<%IB|-hfO{6+e}2J? zZpzSp-c16F7}J1*hYn9~CfmdTQ*fZZ5k@Wg?81Rv_e)P6kUe1$}Cx{|)*#H@i z6wP8CBO)NOMs{Dl`Ic7h1AwTvvU++EAjMnLZP-%P$WMs}BxD{?Pj4lCAR1yR=c#jl zRl{S>=8OIQ2g=I9y^Hg>{s28>hyaXxh2(v+T;N|Ik3pC4J$g;+cChlD2n{7zI*9k^ zMlga9w?J|aZVgv7if^b#z{%jU&7wD6p?Oumw<+n>t1mZRkl`q#qsK={3S(!evPz0k z;b8#nfS|FovdZ70aO#%m@ozEtvQg0%9}G9tUusiS6Um`JL@F0So)gubIlzRU@#=EL4tDK{?1@|ttB_U14=s~ zYAE!m$GKu8{M#R&Ho<;UuQZzF#!0w=BGBdig_Y35qF9F`r$NieC^k3X?9PIOn#gv? zr{|N9gnQ9VprSmSFilSUU33e$8bE^+6*aYPfLkuJy)g@PtH=WLd_stnf}+!u4^G}U zVZ1cmTAO9e*D6-&4=hQrVxB;LZy+wF+xSl2<9fh^>pNsC#FwE8dka6s-IYp53ZU@d zl5@3pp&3JE4_7GUo&xrTmo$#jKv$T0jA?P^ z$Eqx*C_CccGz%klPCOVORpkiT`Q_iCLO!l(hV#}N{=Mc4T~S78)nnr1_w`#6-`BoL z1T153&jF-Rh#Fr&P|#&Z33rihBe>Oq-|p9Kpfi~o!UGd*b)wZ#AyM+ej2xsmP_7z` zcwoC#P#LinqKkYe@v^Q<23rQ6Avt3+-KG;xI4a;C06qT|^PO=L&)J9D0LK(#rD4%I zI5?mdHKw~a8r?Lewl057SD{s4>3ezg{063%nzXPUXNn5&+iJusz-(ytb@vAF z2h2HvcR>0vZ#{l+9i?AwiG7s)h7ZnvuHTsGrlQrg3L66ic)2cai*bU>V$Xa&{zDSt zUf@1Nz@qNM3Lco37gb(*VirtLo_l)A0ApMI|oZ6 z;QE1(e)#aAz09B{(SO%;%Ad#oFJtq`LX6*)x{6AOV&S}*G}lr@l*UU2ETgx;gC7B8 zxw<&jcNYFuaZl>{LJ;m1!QgO{H_iZ=)K(9cv!50#>!m=Z2w~_VGeA@xWXzA%+L7Sk z;+}d99CAEBjW8I%d`7nF+L$+D-}nGv?cdq9Kv`P3qockro8vWF+S*^Z{ki@ms0BF4 z8Z~?Iv#MuD8q`>u0jCB9!w>bfTMDE#qdRUQS-r5O8m);hXDSuM&ZQ<_vTTlgd`bh^ zv?~mogm`_cX?MnV@7F`#4)ZE!!WcMP+QoRBLo8|+7K3E4j&IZ>G}*&0F8ow;#Ko+i zcig}v$ZKd2RsH+wgc-%_F=M$2+wp--n-me&?&JL5WVi4zs(g>P!z4S80twnr_7=5t zbupj@0RG9rA3zPdORYB6)vg=$3(p*?2vn^7nT{&apPpQR2|E=yO7#bc9|40v5~sTI zoSrL5i`~WH&cvJ?$haO10RC--Ue;xv7q0GT2VTP+Wf60(Zv0EM-p<>-iaOD9%R~x&R`HPT8!z* z1HW@9^F6yAgF97YLzv2I5`RYk`=z#UhN=;8eBP8DBu$fk`$zB&#KqU|-_^XbXN@Tn z(u{qu;Rz_hD+LMYcOE7Sq?d+l&2AjZ7VF4D)-N2&bDC}S@*3W7Ic@~t#|IF!RYR9f z@qd^a?ERy$qeICHIuIWgQNEIDszMsXaqFla+ZcqZ37nyKc6CsxA03wukT|4rUc?mz z#rJA=gHJoLRDu9JT1Gx`8~d!WNGb{PMjKZ|beqqokf;B(aPj#iAP9lx?d^>$>wN#D zu9g1^-n&J>gD_AvJET+s)zbwf@#9CRlRs^zf4KQv4+SS9PyN!;5&+Y@>S}=k!Kfn# zF%&ymw&L)gs|Wd7g^HBoUVMh-Pj7kVo}b5dz$HL(#7zFy^|UR5fEIPdpQuV=gR4Nh z`0E!%qAoIAx6;o>Jdp*FND>n#f6IzqJhGzgiW&j>7NFZXk0$u3sjVH-=(fuGd*0&6 z_?(2n2OWcL9yikB&PnJ#HWQ$K|#UG z#9H!vK7!t>4qbRO6*$&JtsS<()r{>lbw)-8A9Wm(KMvW3>6V7~FXIT_de9_YHT#%@ z>=pqgplCSedwrZ0rc)JdIm0$wK$!$pA8nqo{)3kiCYoVP9 z({#Qge>}OWYihjBAC%n-R;2`84T{0c{c6CUtjXAgN(nu)QrYy!ZkvAAqSimMqhQxA z&NeE>8eA;8gpXF~IztI1zb-24HzRpY3Y5}CMqqDuY(4)x<*=G<^%rGOt`&7%!h$@K zu34P6{Cpx$DS_?-?6mx}4j?{6^E1-YEw-)dC66Xhq7svnL&e-yOee8!DfTa;Z(!9IOGPXNP8e{&A(Jj`WS~4#{fD) zb%7jS8+{v!j{*_eHa|dxzf+BFUBa_}ibFM|E=d7gLa=xpj_C1QUta+#{+TbAl$zR8 z?(ATal9D3Mn$Q?P#YI4b04dAW)s@d}Wgrag{jJ^v`qh@DBH2V@86*OYTt|N`mrumO z$!XPX4w(h+BKUliyJIi*y+yq5X7?QcnfVTHq>Hg$f27V}Nkr%J6{o`r3EJFr5dZA0 zFg57vK4-c4b2Rd#>9Vo+CxB{6m&C&ahDc5-)@CTUXfhxtlm+g*Q_HIKJ$8(xy)SIG zmzI-50J#?m*zeyuzzKM^;Tj1GlcJ>(dOIh-p`)Sz`&Z2p=FXo8IWVkk54%2Zi)?c$ zeT)mlgY7lqHzra?>-aFkoMshSwUDn3;uhRuVs>^cz)K6w_eUsx&NjzW2uVPZ?D;wa7|E%~gxZZ5FeCe}~co7UZY+)20HYs;jH>MmM~V z35w06OGozid4HW|vAl$P13*PePHx^6c@w+)g4=NfXMB9zmP^dzPMJ5N(H~^%7dnHl z%CFq`X9fkFGfp0X6i$1e5-Kx3wGfC!kaHCk6*2zfYLXt}{FJdZSGTS;#;a8zDB1&Fq!&0)UrU#`yBhMZd^Jw{r(&BR%VqCG>(O-5of11;FP`>Ed zdft{Pc2OEcah_5zTo_I%QHyu#eR~YM;4_vEJ83h9$$RxTUyKJOXe=&eP%T={+HZKR z6{UGm#sjA)7ev{uHs16kzwYg8ez0-DZBUK&DDYZhTQW`Z9}xyVHCoL$*E4t19z=0z z##9^f)N{#_oG}fuIzAArR*a=g(tOpkL-mN?dVq3ic^N9+mw9JElHuL4m6YuCSs9*U;Z0b;1o3^WchfGIv+r8F6lh}5xu2My?9PLL=9g3P;X@EWZ#PyF zUx)Zq4>NPzGk^eqfG|QmHy=E3j;9jDfI|oj{ehZV%JfH{KyTt8D5rGBago--5WxA>(Sv&tNBov{8UA69l?H?2t;4?Dx#O zLyc}WQ|Cjn+3UZURwQ2-wCoND4z@!Aj|z)ZGHT_@S(SbfcQwhYbG~8jvfz1>q`H64 zvX`mW>1pIYNtUszx(M|FD>Ra)uttNEkmg%_j}@O}a1ac66~1_;njwHr9>c=*@uw-@ z?)Aea`KmBH-JJ05m>O-~&VUPk#yt_&r3aEZa0*^r6-aoN=#?=bAzRcx>sKBdiA_`n zacmxf)vg@C4UuZ*g#W3>)FrK-FwFtf=YRmoorm9!3@+34?NE*a!(~x&2QdNsu&QO6 z?#^{IfEZf1y>Z-|WieK11`8Js)CWGPd=1nq0~Fpzt{Uf6ffbZ{o+Xz)E}{XdT|a}Z zP6m%rZ^aX#2F(5bhIpq@y|}@B8T3RST z?M64CQvu}UL@>{1=btn~`_t+Ib|xq^a8@a$0{o_q9Hk%YC6$$x@ugME=0|2ubsY6` zC2VFOJDpc(`tS5!0G?_#b{bRb7w7=xNHLB&MRR@ydZ%AqW;PmA7ow_S!ToaNs!r4GJ-ht%j zLMcXgx;&mtDx%~wPnO@3xKr`Wj2qp;LQBldjNYDZTKpz@Fgdw3k^eA_=fmStatC1= zfQF!rdw>7)pZx39EOc;DiGxo@Mg|!D>$h)66^3u`Yf?k+g?a=5rI0NVfM3Ej>~LAl z(h;-osBihI*bdc)ru>(s4~0M8t_$!WHgloZhK>dymbI?*CwngF{FEEkA$9J7ED^$r zOB-HlOQniwPrsi+s&DS0Ao(w(iw5@Ona#5AH=m@SK2F(8xFr^{+@H1xHC8%VBj6S7 zwMkv<-{~e1ilko)gB&T*Q|;K?XtH0$wtB0s&s{ok;bEM-E(unf8YHnK=s)*=BYf5 z{T>JW52PUoa>#}4wRXeKPCGMWT5YYH=jFPb)WQy5ryC$pE5{u`-m28+0&d@7%IA<{ znJ)&f1mJ)KQ}Unx1pihxpi4XnD2nlpt%KB~F9%GK#$;KFv(4#AU~)u=+6%lCvJY3%*z@&r zr~zkM?Yx-i7XiQNM~HQ{N`i-Ph78}7{!xr*o!IOa$U^1CtDU2Nj<@QL7edrEZ?a5} zCL%KYGtHepEHGB!*&+2$3Ae`f6+t_-M=Pn1i*;;gn#G{dzAQ^K>G?NN$2=qDf94Lj zRMP(p8hR0jmY5|zJ1TMk`ZCsU)O(+G$J2-qB!j%*Tjo^%EW)l(agUFg6_JsSR=~Ex zk76i+l7!SYP4{}Q;;d;)b4r|`cUv>=<;U<4kLsQ~d-L%7#Vqw37TX6AY!M9q=KX$u z(7N$rdk7Q z(nX{>R{NHx-5P5P*3__egj4-D&g+jFRBLEYSs%pkJ?u7x^P7`#v^B}h%S))=Cb@8V zpXM&AP`j~Rau^nhtF0KD=CT$})$3Q6VWHyh&v0!B(kmJiZ9 zf{2v|rJZrOZ(Au1w?2D|Y*5~Wfhe#0oD5C*P_(pR{W^gh4?y7;!(x8^o&_N$-ThZ{ z)9YKKZ>idT$>umrP6%)+=9Pem*-P?Y@BDP<7g?rke*4!X=Dqeay~Ui+Yw^3J0K(*e z%6X1dQ|qv>uy}#4I#l;euk3S;zv>=R_~(DIu5+7>t#i$NU-li>X{Z4guO-o5ieYa> zWqX2E%+}vOMU;vK?1Z)XnxA!Jgc zYJ#H-eg!D$0GzyRJAXB-&X2`B;`7`#$`*BjUME4@_0@ez;7jfsfAEp$NC#Ic`fLVz zK{9DOlG4`Jtbh(7*AILt7!`2zBe|~EmFg1@%u{ImL`DbU!ysF)l zPv`JK;KkmD#b(eZa~j?FP1_Mj5(}-?W-&xe7D2cyGI@g&fY0>&sG;{$vl>k-9KE~t zzvo;6!F>Qw!=vd9?q^dzN?m8e=pozK2M^xrI_r@yp~lO-h{^ul{N1pSpTAJIlv$;= za?8L+vZ)GcDquk9DFWHKdzhY*fPP)APngFsQvjiAwvB!VD6u$Cg2CF`!~C}vf*5#| zi0cA{laCJ-2M(O`cJzVNqJe&eRLR%NuE^8(urhnR64HmzE1LIla=aF>^~-e;kIA(_ zgDqVodHgyRE%9!_EwT5g2x5{)9Cw`;;YN=xW-Z@z!K^yM#}m5wW}dGuG_Xq#}fW-stp z!}CAW%I}BwuA1SZpc&xBP1)7Q@^JS>=gaCvZZ58_Pzm1xC{O=&r$4W;LT?Zn>&SEc z=$)!E`=saN^CQZfq>gaA!v@*pZ)k0^gWNG(tu!Negld^W!IN8x+SSqng7P{E zn3jWiwvOg2RwN4i13$Gc8@tV!#?!S!al#3c5X}r;Ei;wvPl|)g9gRafh;%>8lXhcK zFmq-a0f#RrU|L#TMSd_a$nfDcWGh%jMFj$%pnmdud8B<^W|L8ozpH{)*j1ed6St63 zyeTly4^QfOfE$B|4^m#+czXD&xE*Kkd!@b{7*LH&W?SriAJHvNkDl=uy=bGE^1PYM z!|fe&>g7sDUS&zY6dUFojBYy-vM=~DJgsW$QbB+r=fE7W zbx*~8vrO^35Lr(`@$2c8pB*O(7q{XWaDIHX$(T_9TGci>8nmK~?r> zl8{Bbd-v`OK-UIm@;{4*KHi*zwqG>PxKg6!kMOK|*|1Qd=UR{v_3#t#kx}yJ5pCFp(2aYqcmjpUIG7G}TTa4HWHBYI)M!?#tXNv{{lUo2wLGI`k;On0? zHX810zryRK%|%*9HI5&S%I?}uGPs@2~w4zhYkzCFY$LQU$Hsh+6$ zCr>Jv14Q3xH&+R>9w)hyzU5AX# zXD>E5_x?0hDNKF7%ft1A*ueHAsrMgcPKJCkx=c1Rq_2n#XzhVA0GC-vst z(Pa8AC<5(glz5b)&J3Bt&!d4K3EBP(!j)qE2kr}a01yZLcn;12G=U)==jy7faj#CF ztSsfhs@hJ}-dP{5NI<%pKMhI#pyU$~;q?U`ZDK1o?4VqV zCA3+#($b9f*W+xQy+*mjFtlh5+#XPIIOX~!FD5?hs$i2#PJU9g#mRfLebae8jGjP= z$S0H-pQgn5TI!$e=n$g(Xx--nAer-HoD=VQ!U%#$b{>MfY5}xza@#5WxT9;Kg?Xi~ z;T~17cn(PeVQMZe{Pv?C@j=r?3h`SLb^3MokAD{oMI~}#{mslJgdS$;NMC;lzZ~db zo$Hx*wM=~NI>qSN*`=XCBTZig;74mX{PSclt?dFG0Q5x$6BcSK$$x-oqF>Zmm6CY4onfp!Jvj9)#5_Oq^!({~#J z?_Bwc3V0lR_k5&Pag{=$Vq{3%9xal6;uC|JulaAI%*=v}RZT;&yp~hS=yQR1(4eqS zrArIVvQ^bi8%0F=P*qJ7>y;Gt%6`g^G%n#uQ@*_B=4>`Sa4Nih{n~V-e78n=`$p`SGxS3kcH0eM58e-B z!xs6UA2E7&uSi`Qi5*=amaB^!wmwZdk3RLB|1{|+ht%6LGpUpIE|l6Lq#h!Si^&yb zuom`|m=+Ip>`gmY3|Dnri{6R`nenFPH$0FGwivU;o%kf!Ba!fio-;a9OI1a8F7&YO zW5fA%RyiG4wuMH+fO;V-2bUK&`n~C*Dm2HdfjCdyhPg^it)`DS33VcQ7B&`NMuXX3 zR$f_%%$O{PvB@}@zxk|E=9O!H|5_FB1hh~cO?3mh9fS``Zh|UIr;)NeW6C$TJKqV- zH%!UXB@(2)#N?gP{qZ?^J>3P<7;@X;clb!p*xRC_J(XJ{oprT_DyqyVluD$PuD3T) z&BqlTSUSoA0P0{8(slL3(Nw`=-flVUrk}aq3%nwOu1gnKDzNJe<6h#^?3>PkI$!yg zq;Tl#hEmjjUb6a0d~nHKo*!E{hWau|&HjA(D$rmpmjCt%-1Q9O-KDyQYgk@AD=;{`{>kJluLttH#LBoS4BW+V8kbgVHjZs33>iI;i3>?d$JeeEYR_22) zeW>cYl5M)(^oSXYq>RKv9|>rtQ#^qVKA@Lw$f{MY%PPMOF1cUbYx6Sh{kfE!>+B`N zdUm{%0C`*oyer^d6yP1WJ9lu}&~C0w3WtNM2F^L*Vb7y_{x^%Uw>8yBVHa&OCs4W~lAePGD=3&S6 z@3vSkVTmfsS5vo6`H9!An@m5^K4~i}NnUeBeRj3=QWi!0{7WNCwZrv9X#K2vL9I|E zjngmFF3H{k7+xCr#Q5v?HMV8iO9j|_q=pjB{kA;t>i5B!E z_Y`!uyjJkm;^wyzG$=Bt82J3yzp4bhM_@)knsvAhYlC_hWgxpA(Mm*vk7OPkG06Ji z>gHBz*!KpLkd$m7DF_1X>Uh!hkCT zmTv(>d88vpvL@SCd$Kwj$MidOt?_442xKK#L8$Rxp8i!8uc_t(A_Hbtsrt8ubA}(O zyuM>euTlI6urZJ?>*dCcwQ6&k{Dj}1#;as^RQloIZ;cDLZN45G(vQ~I*!bai{#dJC zLd+5a%xI-PtMA_K{`R!Xw|%3|Hu*a11qRqA*g>qS%cZ9i{xt0fqFnH}L%gq{W!g9kyOpnjEas<90+9%3%J4kci(csob|ZY zZ@TAYoP`E`0nyTeM&D|d`08y$;H5(Qzi%n+XIjn~`zy*049>{&vHS`q_Z{U@(LBb7zi5*>*W} z1{4cr_$a|Git{WR>EhmBQns|Vh9*qliMU@%CQg|_sE1QaIKZkx2#)6A6!4XTs?MJR zK>&^|-?PYP@`%1DsiXT%MEYt{DJtOrW=!F7PikNAGTirQn_||OirCnAn?Ef_I3GpE zi8Q2_88s5`6&&Eykee@kokuqQz%q!Hk-|tzQ!l%P?IIy>M8Gl+mulmR3)%6VZQeV4IKNu>C1_>1P$DjFbM; z|LtTF$%aH%-AQF87>@S7deWhw%{D5$X>R)Ut(%_N(8OG<^}HwMvC}uqi|Jj8yVY#0 zjO9nyk`LQZRRLDZt zGI~vIRo6|{=Ja6cVjW1eR3cN(Hv$uCX;OYSEgqkHzvn!1NbI5Si(=88)tImilCVj? zoBX0syL1H9J9bV^IWU=nMDDWCg+1`*KE=a9xeMjf0do}HGU+xANf{7;cYn$ec32AR z^NE*eIx(!jT)BfBdq0t9+!f!Y)d(?Ek=A>Ul2za=;F`*Y5;{X0wcqW%ysNT{= zK>#`NqWMYWiE7kGiT#6%^!swHH~Qj4O8K9E!dHCMaB|bC*6Mq03~%CQO2>!o$tO;u ziryNCnAQ6Q@#E_w3Ev#tWFe?z!8cq2Ru6ypQB@NItbeQ z0CaTg1G%fEa261a&e$8j`~^fxYm;?>AcIdF(jBrru6jQ}eA~w8XEn=q%dzn-FsNN$ z9k*3=lTWT+8yZmYSzz=89FjpdCm3Ak`|-wQzts zU<9B695zW&Z=i#7VeSE*HT=#Z5s@sSw{@@IR=xa1Mmw2f zKv$|~!^TsIh$XJqtH|swhuWQ>+f=perZL6C1R{=>7M*;Hl%|R*Pkg1L#N#Qh-@|On z+!=w5cU<=Nraf}Y@>NR14;kg{b3C`FkM>pr~aL&;}i}!z=vN6 zzw3e{nJ`m>$%{uB6dQ{NGWg1->^PMc{jMQJ@Mt!!sA|}oI=|)BRg2}m6#cU`a-k^3 ztKWs63r*Sryu5~(pdAH6FLX-!EpOD}aPiyzWcXm>i=W#q);cTrj*0UbGTE z1OySx1)A0WddxdMS=We}bLoD2I#Ce+=0kG06y$wVL?O_+EX*Jmf z$)uI~C9SwxSPRqjPft#6h!8(7z1R|_Z=GI|OMb`k&wD1et?q#;7FsCdYf`1pj3iM? z;`>?6Sx52rNhlskT`^oE&Yr}aDC3v}%y;l&%4eL@QHtE5vUXdNyM0_se{D=QzPCjG zoTt^9gDcSlYfPKe)~}^G@@n4q^x*J|v|v{jF9QVe69!WH$#oAC*qCl3Yd&i7{U7m>qr851hq8*Q0^n^`wf;q%y@6CSldszjCK!3OOSMj2dqvHN%^Y3woJi%@~ENbu~nm1srQZ%>lb}~ zI}i)QRSz5E!%r#|0&3~)(4%QASA2?}Wq7ygzrgxKC<+cIFhCGt%|U+!?BxOJ%e<*4 z8$*Sd+K(Q2GdkD}7=t4psXijdd~%Q0!p?vng*+I$t>wXV<@nGl6Ss@6r zu~hD+ZaOvgnnxFJ-D)`@Prf4A1AFd1>nKlJOjcQov6Fr!FYZ-&e1~bIK0dJ?!H~+w z-zi<&TeECA#{pLd{*OJ0(gZ(YadEs3Y*8#9L#-_1Vt5j``|f(UJ@fV0!uSlAZDPGN4uqr>nWW%(-n*%v;-$jTIpS=wE;QP=pZ@(Cg^szykk~ zWuT7J2BlV?>!yKm7a0`E*G9#&bAci6wO;RYlEh4c~A#a^8`onC=@v8%~k*at&)Fr>}T5JVnC0dCo2w z%TDV_R`DI< zOnog-nM+5a!M9{K*B}kI19!oDp2S$Y{vVMUkXbKRv*G)3h&-_L^?_*^vLEjA| z@#*2ib!=3-kzCwYWY`vr~;Frqg>z2+tiv~7Gl%_*h4*>nBwE3T2WW7D# z-)cC&58MiDT1W>SLflcNNV@}OVYfUA*LozXQTZs}Vqe+UAXMnjM6PqmYbf5$Eouz! zo_?Cpzf#8+pPuH*8Y*LrGtHLIXrk&`#AE%nu_MXYxJ{VHFP>Fo5oTeCZT zF#?DOF^>XP-oM$8BC4Ow?;eyot#qiOmB?Z5sg2s_{zV#1bcWAYXk*gP(nKK7A6D?? ztHm=Pi_L@4Q)OoDLVX+Bcp~E`f8}!nQ%nzi)yFu$F+J!a4+b}xaR#NdwI57Yz&bXw zGCq?Bt(nif3rkhXg=srrX6+{mSTV)d|CIORvvI}e(B7yq70~+H_o?a!U9SHT6*-Sl zdPgfv61J{yF*KF)O0liz zuPe|q!&IKs)d@3LliK(U%&~XdgzfNBUn9Md?)RXhjP$?q%=#xLV%>td6zJDR{Lf@Z z9(Z}c&SLM=+HKx(_s`5}$-+_;J8I?jDa*9@Ftd+MM2i%zmPw6XpUFd4s@mA#KAfLdtBJv z|Lm8?7t!RMH13t@x5^G1@5jr!PVOjI>K8Os^{L3|pT5ME$mQtxrQktIak|#S%+y8i z8_?&S0tz9>DbUtA)&}D}OsOI#V}bH@hJ=JPoEx0pJt`IaKVE<_3ra~pQOJdWvEdav z%meayM$D+XYv6t|1^0IP-Dl*Iq7j3~?}nqQEP4y_@`BjZ1UTpFbfyf z`#Y`w9P?}?vN!%DTswcBSL7z=QtSBs-8|PRmr(z@3Ukndw|l>cK=h4}4bl9dI;6fV z)jg{}#_>@KM_fpA3iv5m>BNXV=}RZ-mB9A~wH}6EVATS11a9Ec%a`X=@Sn%k=fJ zJVlUF!dKk(4Uz}%PEO=R2xw!sLWb7NG3|Oe^0<1pJni{BU2p_yl9LP<_w_GVSHI!5 z8`?$DnoRrH4;ZJ1P(&D-szv*^%HKS(t)p4>8&X?aK*xIFGa`@fwSs==h&CxvN@Zk` z1Fz@K{(QMrd_%4R4O>FjRy;3)n;iX~yMXC9SeVk&Lav(>Xyni^`A$=C+^Q=R9nhxk-C8F!)4q|`JbV2jOMdvFPJluva|7^#FOxX3gu{0ygIOR9FbB{Tvpcg zl(C!qchd7j|}!CmWG2CDOugO*^eIJFVyOG|tfBgJo4fRFmHo6WibO7vZLf zX!Sn_FYsQ>P7X}6!Pw=ZA?mZ1di=%SgkGT2rZwZHb%x&0ZrM=~XpzE9pf^_mjA87N zgfQgkRT$e|kCZgzuAb!CrSn^0sON}Bfgq*OoO2-m5MXZg)zkco>8P+9F1{i$&bKt)ki<93*6P-}h-SX86Uj=8 zeJ5t_Z}}cgFj+-EPZ=0Iu=pD!;CEe4XiQkSToc0_UtndD#l31=@Wny5V6=w3>@1J< z?4KYb%iS}|jyzO1n=zO5um>Wyv891}j>kVbPD@(^#Q#7=Mb^N8swbW{1{*y8w4N_k ze;}zYBvELL!&!&#Y|waRIjCs2+01}7)u3%?7!CeLCMX}d2Ig#b657V`FveC09wV>6 z`4M~&iQ`*;?CQL(FOM6)Hm7pf86ENmIk33&bJyqXk1L%%YrVLI249NcIQ@D4^Tx-; z;$@f>fN?OSH5B~j`IJ|x1O9(a&e3AXxxYYLV$hJS_U7Sf`Zq)B;dZVt&}0EBBhB4= zW2q@1p^B_r5xmzxdP)fTryL*=gbvxhW%{X?fl&RuMe(A$pmB~Nx-I_oxs@0~N4qc4?q zeolsi{@-+YJHE&i(cak{^<9`CM9QMbK_W+E<0*crzrWCLVBpP>38Z&xKtDNwY{RY$ zzE7eCz9-pkx!tLm{Z@;XPL52koE8ozB(IiL;X;~=O~;7)9{Vh z4NsdqfDpXg2q)k_Cdocewx%t(r7-If?cqKy3KJ2n~h23hBN+)SFM)uh_D$PL3OW(+K-hosD zFa`!$Juc`=#+ts{EW&1%ew-Z+lZM*GOV1bkg#EpK3T94*$Y)9f5G z8I=+oAF7T=TI9YVS8Y$0r$6_T-!H(KC^?r1bE@}FoT*3Ksc==Q&2K7g!~lLED)EBW z<8-k(F~7yShWHXAeffCjE#IqWw5(z4ipAyiFHT*@nFhCRcf4y12|}`2_{tMG5bgCt z(N-3$FmV4L*4{d*>MraS-E?xucyIoFj7XaW|U!k3Qzj!%NcYH@e5=dBRg&bhbl4wZX* z-)uy*ie&b$^3Wqx#pz}*Yp2|FI z4c(QT%re7%H^2r3+0h!vw=z-}@p@w4TSa#f!-;h7y(QCQl<(;9iX(-KFi7wij_0dbxp^YJjh#k%DwJ9B(oN&fenqTV zBPhWU93EF}z7y1`AK~dpV||Hvh{xriXqZack_kkpuvf!WYI!Ht#}qJYPM7jyR8J$X z9Ae4y{U>`^erTE;Qm7-#Z{1Rc4&wFAv6=m-pJKZA%@t0O_4?M^rvZ?%laq4on>Ned zn)$VIbBTXM*&^>G=e}qHA~KLdK$V##e8^I4IR23Zk8fK7_ZydW8k z8d7jpWN?B2%S>g}9sP(Whl3BV$x3ykivv%P@G_U~`(lT7heR4NUeaOSViLS};CyOK zQn~%F(bjQ~ydF0)K&%F-3-pEmX&C^DT74gH(>7l$!>&-=ycXVVq4CK0^To;GMl&O! zWEmpNO(&bwj~jm+%zqr6!=baNqCzZU4i_$NG1|nb1sd4>sPiS66bzrzJM#G|U=8Y- zu`m7OviG_ENtN9lJIs16bXIR89R4PjPahekL}!2ND4kq-$6fsO{UiIjL^3L$SoRe; zdd8isZ%->xBX+G$T40bm*^9{n>U+$>{k@Z^ZQ;>!ocO4PKuI`paGCLLKGn73%2r2Zy~WrU zYIe{Cx|>*FqM(>mVnmv1&EgrIdXP+~WSVq!>rcdEhd#CDhec`5FZj284hTT`)I|ou zrKua!XxzM9cMFL6iw5M#*VS`VPL`^vD@`^At0ffTSKpPoW#pxQvKw2pYmvu83IY@9 zVKgmBFs9H;ryHs7Scczz3yboxkn0_E!j?(ViZ#7u_fbCxLf-s@Gf4|M4x0FYG(af( zijmw8lH#^C#*f~)gqc^pFoa*tV(d*R%$P>p%8JY_?mZZj%JLxSL&HT`de|ns?8-BX zFOjdgoZ+1ZX0cKrtp&%CW?l#J3A~_n`Hlf}cnAmxUt@ILLL=&EN^`J+h3$yr1|q-D z{qW)HHxH_Q0pJk1baqpax;G=Ftvs88QjElng_`lQC+gfqq^g1+n z0Hb{fO{r~6e^FYPw(<c5s-CHvBrHJ2Pe@G#B7Urxes?qadQk>D zEC1Wg@z=2zW1&br-cN=vnw` zQ&YoFvfKI0<~3%MgJil5X>y_RqIo{zc$t~>q(yJ)r>u6?198lQ2*k)$>i^2CW*owg z4+QubGo4*?Q=w}dQFhL4QL8~kj3TMV z_o;z{)^$@u=*io~)RO>cq#%Hx19%qSS1|K-sF6dAq%kF#-qZIJdF;nb20*g}5^MiY?-TAHcV`;M} zs&bh|&jdm39Pls^z1uBbrz9iMhF8nrgaHEr8F~3|5=*D%CE)T9D_?AMt}*0S64rNc z=?m<7!0^#xccQT6ah{|0dNq4kOdm)xW?1(iIx1i>Yjj#J&izIsQFsbk;*g4MWuatA zLvVHNj8qI3`p&txG9T;1VOyliJlFbBX0juX zSX+vnR#5@H>R5Kz>Rs#ZSbJ`bGWPEh#?ya&!N2bdku!X~T6gvkJdE3s7-h2v>vEa? zA#B{ohXe0#XG+xX#RhlR4r^W#6@0wclSOh&-TKYw60P%h7u`ULZ^@snOZ^#{+xGI+ zX{dhSLtv+HQ`^d0C%|F2UJH`Yv$vCP9}q`C$l$TZ1j0QX^E(U9FBIk|u)0Ojsaz{| z_2r%sskH{>PVOB98U+GksLH11{rPH{IGJO1P!}%%=G8MSqu(x`Io{cIG?JWCkfA0I zg@H1^+oAC*p%R4N9gbP4f}r9vsJR%Ue-01#yb@Rm17dZ&il(ZFtt1td9P72lT-Qkj z%5sj(&1uOTF%!P75TBqFwfU**uaODn7ez>?M4mkLg0Zb@Q6uc}E_zE1t%a&1R>?0X zCCJG|vQP5|r@3}I+2KdZ+4a7)VfG%^(KegkCZ{&=QslN})VKu z$^Q=b0j|J+pM?=j`k$?X&lV)n8VS#d8rs}3JigHalfZS6MIvN4WjZ;=DU-09@E z|E3xI(~TuVEn@t-W$cD#aVi=Foe2o=Imotmbl1fKpt%rKE)I7@^g;Q!CRViuI?Wsr zy_%cCDQ&&>Pnnfh6^BnUu$)mGnr>@SpX~~O#4T0d3?+Lke5e?)=S=ICFQ8xO*s|wa z`w387Zvq*vey%2hlty|{>NyDev+pn@J&nNTfHrpG{*Uciur*NL_FQG=oeOTTJ*ECt zbB{Ki<)W4Z>KXk^`N-C9(r>$|q&R|qW>MJZQSCo%SCWeMrD>cQv zz*4l|^%175unQC$dWfx>9`=`FNO_BKPw~8aJ!cZH@;!61Jpu*M`p}WotBl-O;7__T zB;Y8{DbPW5ywFb_t?gRWuW~b&gKsOZmPY)pD<;@n{+tRp{1M`Z!C>cd#JinHIM#Pd4ndHUkWMT+j; z1c^yu&xi&NtGlTb0LdGj5-?Z;iX@uwezwe@qyO{KrhQx3w6qde?X>OF%!eh$i3O3uIs?}ZoNBu`GHGU^UeeSUQ9I-USu zsv`A#aR-g)MJGLTY&m3Rjy$VhbHECOk+BQlKe4F+$BdrK*#hkSK-#RF(Vf~i-PhXP zqFHt_ShYY?qh?AGP|aPuHcKctom8JwyN^b>>N^G(uOOdZ^)i-t2l!U>v!^=!#_m$# zz%QgSmmbkWTo&vL_e$6JHNulWt#6K4*4ge}IPEFx3V4t~o%?10iE`#R`hGs9$be@2t(#0gv;zVp z-;HUa?ic!gqR?p2_Wsyxvn5*NGYv8wMEi`J(eoogtsO7P?2iD@jhhEt5&+LQ98V!4 zNZ-9nS1*=CY(;g4(W8VEHgHE8{wBpZ!VUFFAbr~cL+lc$yZJuo(j^{vW)%PmFfu&s zPAc5NZQl?c4PocM?r~!oM%EOnC~j6g@~^t{g=PU_Mh)BrkM#1q4yry>C?SgIpF`5D zkSF)v-2k+a%XM9{a%h;j_9*qOz^eBa1{lT5kCA_Y7h>*yfvS8JCrMSn{yh-L0ipP~ zc)VulwcV%Q;&}0|ZRSjYq0yb+X>`WX_vwZsNAbI{OYL069tzrbnmiozIUPzL)#DG_SI)5>Rq}X?{tmrX|Yf z;gfm?<|Kgi4lkwAJD(~lqijFD_YOIt7wXsrwG!-_!O@H-&bs7>YLM3g?=jfZRgPMe zA(8H?pgsox8_2ByU~3t*{`2>5&)&PQgu{|l8qy_D``R$V;plL_>@ko)6f&2B&c_4* zKZ5>YF*VYheg~-RwI44)?OF3~PYY_z#nrzi*+~hlgus&n^h9O4SiL^F@$>C#HCWDD zkfK3L*T@6N@GPZolZQ&?NDo)rMSw(?m`B~>+x0wDzI_9Xgl3l&H(ZIx2D^{1E3A0P zFt@-)3VUm|*We@GDs%}-z%|0-U==a;*l+`DRZr2qi9)!44XIU> zPqk+8e2#Npp4s#GWN=c3hjoA>pI((o6m)e5F!`;Qqt~5BBYWi#V|5y#;|O918}Ve@zg~>ge=|5t~CGkTig7AM9~Gr5LNPb%!@yJ zH#q5(LY9sOfa{Ri-zPx+bGXE^^=bP-mkqtT?&$FsOfcJ^E=>Il-XFDqK=bGks1&1t zY{l~pKX9-kLjPK!4bjlh2wn?%CdYfJ8fm!no^jlIszhmbwf%cmMf{c^=#M@9wcRgZ z6VJYVkX-*U@<#!-2G?E@fM*-7EwZw;R?PWeiWdE^gL$8etUB-m)GXol><=R|vsS1e zSkZJ!Jpg#87CR3te^kRbh=byt8?Ik)`XM_18TaPo@cH#m+V}!MYH@g1J-w$>Z^ek;%xc6+ zh#Eo%W8lUp6qjNcr4{~?2wggf?&5F}kE8tp_Xq90g4n0q{_&Ii=LaNGekaJF8(6I1 z=LS4Kz%ly4eND{gfWJRmQHH7sp~uxrCe8s~Y>ESdWney*keeF^_Fii15om8TbaYDW zNCIOBR^13YAcAYx+c3hU!=rS4o%AlF{YYgHC7FkJ*2Yee;pYH7$h^#S@Z6{3QoY$X&fj_ zf-!ZgV`E2!Iyy_EDgP4hw=(dzWny7L14y1^=QK=gf2Q9ya>vu1qb@H6@Q?(8vMyi^ z5$5-=mBG%Zx#QzUXe0vrzTD^>9Z@FgM^nRas;ry34`gc)7*aU#R}hb-A~SrR$*vOx z#b~W%FCv&Gi#zmVL%QGuHlFT}BYHQwrf1pNJ(5M5zCk6Ept74ymqv-x|MhCm0tA^~ z>IN}nvPqtXc&48Z0^?FRwR5-ic0 z_BzphH>|Z844__mQ(et^`F*rZ-Wn93fI$dC;Me$%?rh4i>h58{$BqhyC?2BoNzbJa6HnWAw`mct(nrG2}*rY>g_|aZa$Jjrv$$420S7zAf`S!Pk${w-@S)dv;NN* z42dg*x0!F_!FaGzuVO#QU|AUI!j=G;p@9%g>WhAkNh;Gj9RzP_$93nc?&qufp@aV8 zdD94}$~u{7uI&(C0>Yxi0raXg|Adv6QeItc@=?IKgZ>Nz=b<>OSrdNdMF@KPh z%;jQw@&Vroni6SXfjBDqp1*iKM%!mTXCj*12P7)IJFLj`Yo>vFqGHDF$NduP4Am>ZEiS6wo8ci_{K^s9 zo%)Oxtk{o3@2$yXtDFE4JvhC81hnHCf{NTPqdBaEF(h3$-+G&kMe#zB6!uX8=nk?I zK0bcJf8pi}K4=27O6AgQ0R&72Enc{&7MHWkLXx88Gi(_n`n8%c^#QH45Cp z7qX3lX=*aeio~|z=s6(hDE>EJYpw9^Z~;fMkEm#d6qJ(=1Z+i{1-zV01ubyS0C1zi z)}ZyWH5>q*1yH$wzyIR8d;FxuKO51j1?$&f>qIfKf(m%?#aIe>M3K?*O#THnKY$%c z&C(I*kD+<*prU$s<^8R5Gjt3Cx?jZqgsa*Im@H9cF{FZwcLE=!^RlQKkwYN$i^?P`1*+Tk6%dUaHiw}MZD0w4 zJm&j-Ip8pU^&=9cKem|f1tZR$vHz6}4-HsfMRgie+29)>i4APx`B&H{Ur7TjJA})h6lF<%$lIDmytpukSv)&eV{Vn zepqZEE-4JyY|;n_=(CBH8Q>~GN-2zB)u;jM8K6cGNV}PNRp`N_etti}hTz5l@4dvMtUj03UZmEH6{OyIhrYWhP6>RaXy`m5y@ChR+vFV|-5KIId9aDr zr`09;9jn{JKC5ruU;q372ie_m z-+<;2VEi)UobnLD`!5k}cpNz#@Hl~)4Il;qQ+2?}16l+CMue#2%YkB47nx9<<+I$WrQ1Ij2_Kun(mM&*#iW#GG~$;P2zO^MRw0ZVVB z?86kjqoEa6fP2RtUBnCqLCGhaTh;e9&59iTqjZ8TF+c#p(*u}S5?vy~e^&U=U{4jPBjxk|{oI31 zR!Q|&3BruS(6a)-J4OD#Ix_*7R6t+a|6k`=09O#`Re_)Xlh36Y+AT-XieMel3>tSM z6A1WhcPLF($3WcV+P*JFlQx z9-IAqD?k-JVQV9~R!2Vy%J!KKF+O|{I8Zli4AaVi3H=x35a3n6+qy&bf8)xJ(AVr+DWRgM}50zL|GyU=4se#uK`3k){qpIooac!OsE zJ>*1?6bCq$oTJI*GlF*oJ#`=_H>}s~Xkflv#u?0!6JZ(u`?82?eXPyZ_N;53_s4<1 zn&WhI;MblXDMJqCWkkKubB5ppwgzfU0{BML&DC-vs3KD&-&jP}qZ+1B=L#d7_Ms>; zs7VU@;A#a1ZV&zm+4hoQXAU{MRtS{ENuZM~gDaa4tvBcrBAc+a3#m3Gy?gn}!fB1- z?$F6$8GqBb4S!YNY_cJ~%I=j7s|j-MtnaU;81FMWRFG$;YOQV2)+?$)wmR;=z~v&e z?2JmC98_mEHLiGIRfZzc?_@JZyNX@n_mB$6uly2rB65-mp9rM^eoeXt+e)~7)`L_O z!tkg0K~xmtWVb@Tyxbb7(o^Gaehz)u`he7BZ!-a>*w2Fzktkt@ULq5*;KiAp$Zw4p z%Vv}_eWbSNOGo2bI&(9THa`@o+8OYNtzY>TAaumT`;Ah z>EVQINiU!1^07MTRTf@aQecTO0ux6Z$~s2*G#vz(1iH&(cgBn3q>Awux2N~ie(j02 zi#^hp3gVCUKcrxo2tI#*-}`(z*r1y9HU8B~n_@l>Qq>@3#Jg?9#Zc?}D_4N~i?bZ$ zxM0oE&9my!7rEnH{X-aR$*?>8&G%*p1MGquf7PY4M#t&@p0zzX=f{u8&Wo@c)tyvN z=jwg=zqURcUcwe)+i2Q6wd7ugp6$;9sOq-6+?!4fgmttiIn8^GIL4TD!)eBvgWfByXOhUiX(+l64F1+o`B?(bv(&GGy|A;1A8AO)a zTQP+!^1d$0r;MjuPtY(aSTgvHvA77Sa6~8tp(d;mtav_G=2siuw@gm_yQKW^=G7E8 zBzy%GX5?)Ryt_GSu6mAit@V@0L~-lh;#v}VWpF89Y&FBkFrP^a4^L%_l47E%@~?U~ z59U5HF(Bo1OFn|{-*8^am?oq58%j{@KDWU?55GF)mnoVAH(!AZjr58=4Z-YCeLQ8&Sp=>(g1cTo9 zCyi-;BEknIgjn>hg^mENaW(?NIyA{MTKeH&*5Dnka3Bg7_joCa_CosM{urJho4Bo^ zK{3~~?0ik)$ZMAj(^ZdU+m&ebg_%V*o4G%i7!}PPas(#zj{uP#k@xb-7!+ctiw7Uc zP(Rcg6pRdq6u!~UXnP;Q#lW!l^u8yNHUX2;&JT(Gdn|>4?yWI;jegg3zP6I=)|Z{TJGyv*_i9CX+a$gkJ2H;ao-&(T5=aKhhB z34Dahl83Z#mK&mO+irX>cQ>$=@Jv7GR$xDz4!S$yctF_;$Isc}6T%L-;a|-pZx3f`t3D%ybu=L~I#C&!B?++QZC8_Aa)rQFw%5qqC z-@Up!{e^m#nxvQ+Av^DSW{Q!VnwMcgD4ttU2djJiewQ{3NZVSHGSNid_wac#PwkAW z8wKpH-(5Q4)#s4ys+KY@Rwd1&Jx3EDR~o|Yt#`YVs0Y8hU@R$CzJ^yq5Z_W+&nC{1I&5C2+#KU)D1o! z+gr>^69R8w4=@C}-eEFqrAkwK143#yM<**&-}yPt%{E?Gv$Kq^8O1xokwxl^F#M@U{)*%7as(fDE%&%$cM|6BjQA1ljvvBCfGSnxBv51ijE#IHE z>F?z=oDA_>^``xLqm9rdu=W}^IB5{>`2LvoVk;h7JrCZV`@{IJ@LE$55Vw)ci{;N` zD;ay97wu2j&CuaPhmM=?ujmyN1Mk_E!pS0fQ1EC%#*Yvgl(K&H<`NneVvtfrNGs-x zixr}T*iX{Hi$9C{V31(;KF(dyNqnA0-Sx3i3e>Ok+4J~iV92(GvWzX)Zc}m$7O9d@%6MX-USu2ko zfB>Jt-p>0uG|fN*GM~bPeSHMCxdb!q^(c zXLzrI`?89west^tD}t1UZ#nr`$Js7DLYC5>1CpUj=DGg`$dg)CKhxB5g5PbzhelaAXux-t0CUPLHTJrG!IWAs0^x-zc2O< zVL1_KR4pFtKKI-y=7?y}ye^VX;6;|~fJLx4xj)u^X~TyxQ-^*%n)&rcMBBT~epHe% zDlMaHIMp`4f=o4bljmWOQgzl=5Yo}S8hwBFXdZ|%-|&X%MG(ZI{ZE?K4ttguX-}2u z=w|hl-Hlr$%f`ACzW9xWazCZ3FsJO+efosJ&!cc){M_<~=g9rE9$@PER>t8qM zp(%VSa6Pm6d3#IX9#Htrn8mKB*^}k$xD|<7PhvEKT&&ARh?mzTFY9^)OP72p5|x+&$68ht6g!t^bWg@H_d`WHB-jn1rkaAf29A z68&!Y;C$msL?XbxV*iOuN|!^85v~T40(~S^zpfJv_zr28ao_JhRdBO$ULPQ7U;mpB zcnt~bJ*hT9IVN@Kb7J7?{$f>%(mVC}gw+V>XL4<{bVJi^&umKmm_r@K^-v^3Vf=l4 z`!Q0)^GmyPRO%op2rzQvqP=!wR*XUfXiWGa$HnmrgI72XhXw~1QDigLu^qlu1=T<5MYk%zklv8aJ|76B7c z*!}5X=EzJrO|h}Sff%8_5;z_G?+e^u-aljp@)wt{I@b1Fthl zt;2w3WB+*%S{Cal_h7fU1AZkOl6*v>8!YK#LEvoqToUez;2kA8-(G2Q6W!*10Hei&}Htuh%{~jID zDx|$(W6|IC6U|CnY)JWnT4{!%89H7t>Q=Mr&jXqxy7sTJm*J!uEw(BjjZ$s$;!_-T z`d0VyZBlm6tIgup_h+-J`h{#!N7Kzn9!>2OP5bD5q!DB*_y1+`BqNzN5 zTbnYo{Z&5#+#-oL=qzRb(6p`uubJ~96ij|$(nTzj!tU?6A0W-bdofan{wYS?7o=7@ zv(4$|*D&XQ(jD;{NFG}aXz^_g!;c@Y7qOgpX`J_UGSu{^75NAFo!5yZDDpt@Hr!uI zoQ!gZ#?HueMZ&MD`iNk+X`R{cXg}=k~N6?4aAj5q1 zWMYzJcd@bZ9mn9iUOj;l=Euzr#OFHO(WT$=pJtwN;>j#m_0n_4a!y1Z4ys4l;kknw z6eyH{A9c;e5t>Xk|4GmV4(wWBMJxZ?OlPfXiYbZ!eE(cwrfLXW&Q+q{mEo(A{VOhO zWjVQYkqwZ)t*|6XmLUcwKQ0MF9OqtVM{aL-ft7KwxcK=c?m&~XrPC5&$GCXt_2={k zash;qPDpk>+vgx^kP_^3A(gMu3V!X)Y~TDMj#Cn<1|`pyu{3(b2SNA(*Bef0M4cGeb@VkA9Jj|pnIA*{&j z=!mZTr0?FmNq~dF2l(w$+!%vayby3HCxeuuOWE!onJU!7NqxKpL(#1l?}*rca57!vfll<5%A$#{ z@Dw;z3lU?aA3u$^P_3{^-=TUqk5dYV40dN=4<5RC8XmbxmtwTS^dzh+rCZ?_7}_3WjwRzh%}Q& zdp(aL0n5Va&*w*N^{RVBoF7T`aL1 zTce5@$9IDt>mf52l{L_+pjaGFL&$eE!&@b zo5Wo=;ZZ4lBj1ErlXKHCp{zZc`+wkc6cTEucoQ#y835YMOE-*L;Y$pX5_t%>f%8`R zvntrXkttMpqC<1UQEY)m$tP!w@%l?IcH`>%_;^+J@ z-~akCMgg+V&AqU6^R1bxw5BbL(BNB;WWUf+41+oiD5^%6mK5TwaMw3FpXIyZus9KP zPQmixeyyj#X_2jKlNdzYGdTt)_&xUB<&h^8=4?d5s!pgjV2f~`=~ zblntjOnUNHs+&WnpCk_nC4vYAH9-=vBs9n)V!t{9vYN2oE_9_-d>Z)~97Wx1+&b^M z4*9+?DTwT-M8vkU)5~XzdR{`C8b*vjwexPkIdv*J=+?cdE);Sz5SKZ%cQaopwE>4E zX;-UuaOo;~p`rD#B|0vF1rMvbl;!ThH!H_}ZaPJkqkSbxylOjEK>`H{6%n+gV9tZJ zCr3IZZG1FGVhy9U4ZK02&(yzbEvJ`8(hzv_;f;t#XCMkai5&)HQn%Wy?ky`E5F_z5 zYjy`*Q+IhEGiBZ&!}f@H)u1fvePjNcMW-}P*XO(9$;BY^Z?S&E=P$9{NYmrfeKPJL zF6efB_Vm+pG46LKQF1vN9ABK{){MHXYwLUr?T7uMBIQW{O>TYkkj#DqdSpq-?B1r5 z+TRF}u)t?>%Wzu*neSea^f>)ngVfxJ?-a!;wcCh^gFl;h_JuJOBWSD@ef(>k-R6Z* z#wC_uVh~wWmM_0y9sj0I?PUxon7E9~E|io%;+|)D9Zu*V{hn#}TXbd_L9R57dGPxu z<$7fF_uLo}%Wk-JkfzEoJ<#@3C;<9)S<}LP?U~nw`51TjUZ&_cN0H^k-?B5*8{t5! z#myJNu^PmCBb1o9SQJnwEFN&CnbU&>F-yv zKh&H?3g~0mj^g}f^S%5|2L46%=XTri6d2dbt=PPG>M!YW#eMb5^+-|}pVzha zLI*R)COZrF_6W4(!UY8YbS>+EP=E-{6O}pXlA#cMURhXJN!J5CWb}}+cYB{XOZgxg z`?H+pZgOK8$_nIK^k+=hiOskE3Od^%NMSa)o5#}LJ=7hi5nP%Fj`g@;N!!k>;ySjPnCka-ek zeU`6!cf;8OjwM)m`NM-@{k&f^4IqwxQL+9+qsdc>u(M(K!xEzAu27V(7Zk>tv`V|q zGHFo?Qz5Wly1-+JVBLgn!!5fCzxTv>xyBCDegsTxY&0AdbgaA+|7lSOTpkgc*7 z@U#Q{T+XX7J_mU1@w}*j@1hjmX8xLf60akMr=Hv$ZW@xWzN7)ZRCn9-kT!aKBJ%q@Ee}Qk>F56oG7o)xxH?D;bx%F*$Yj90rTzSNs|&TEA2r|-4t!eD$vtpe5w21&4o zAl12OEV=MRfefdNN|&tiq}D(Mckw*>3$w_sXaXm=hvUv(>|S>~lg>OPMv~u6Y=27L z9!|h~AnMTTcIo`+d~@QCBvksxyn{A~DTVpzJHj5?sR=h^p)QD@BL{ zBbYyTs-)T8tOlenYPr1x(5DsJf%V|9=l%;cG+NuARu=oqLQHUcjsyudB7>w^0ty4b zPtfanMH2T;4FoU{AM#xrYPxC;v1I+tw8>+&G+`$uYH7I%*~6T7CsIC3qHr0#8Phk* z)S#;bz)%x6vIIWbAlK`}>8Gf+;i*)O;T=fBHXqW+0(Y z=*)grwG23+LIqOrE~3{OU&VSX|0=q%P3}Y$(UT_=UVxX?kjazy)Q6Wf!tBr%n9q@9 z%%yh^$9cVr^Xvli4z}ayW-Y9{ZR_0Ekx=N_^D3J}j5xn+W z_HB4pNp~q26Hr|+eQF!)`2aU6g?C!o7j=-AM6^qD@Q%~#Uu=VrM*^2UW~}q?*An4$ z-Peouf}ZoHf?Th$QD3TuWA`6H@nmf|>VV{zC~`f%gshPw!#|i+|L00QEh@ty5EF!w z-pKGYT&Cbl88Mgs=vp#PnnC<+;j?OH3i!PK<)mED8Zj5^^i5@e zu1XLfDSs=fduEzlmI^FMOmQuU#kZR;6(<9yw;lj^XDz)SeD;KMLh8-jf1Brc8ETf^QE3pQB7_4NDy3bP)} zIBU;L!Y?fU%&ja}dOHb>c6V-0fBJ&AU-g5VJ*MFKe4N_BM3|s)Tei}?b5mHrTI?V0 zW9Cj_=ZQ4*Y6nI*Xb)2LEl9cH{q^)7(s9sx9{ccY@6P4W@^FaoG!C}D@WMg5F-XB= zrg6K$vuJV;x>^Mp;HhMo>VgzxJKW6?D^i8XRRK0lm0vsa;^E4;G}53WFd(DtT@+Ke zAuVytyc`A(T~zpDPRg!11mNM4e`I~m`5d}@o*#eu-`W!WZk})Q5R3(R?Dy|tviV@{ z>Ti1AP#uxjl35=6U-aJ2Xn$$4LE-*8`oZ}p_HHtj9(^Ze)gT2+XS_U)8chWxc1u{M z^AYhnmYD0&&URqy&D~!dP-AVHe4Ld)mrVU)`DS>?a%tj#4F{bjqW4f&;%!?LlR{>z zxkTv}%2IQ0kkOZ#k{~Y6y(HH&`^%0-9p7?UO7#FRj0?JZvq0$$nQ%R3)zw! zS7;2gQtfbZnvM3!oVeewz{VuE!V5-`RZ8=GU{j$Cl0kJl|80Qe!95{rH(X5;H}@JKxKU>2CP>Z=tNw*rx2>e6mmOBx!A9aELXHxl3^mIJ8zs zD+@=XlfP8qk_gc(=!$3@st?jsBCVt#y4$gtx491j01o>H)fZ+J zhDsP*5Q$(b^t$UUV7gq7+JrreFx_oYyOvE{)fkM8>&dG9u1iq4*a#(c3U?LfzS0?` zf3wBV6Jtv&T344S1mEqBXw z^h3`Rq?!M(1Eujm`@S&Y;H;DhnMt5pJbySxemsGjZUQFF(>9NAH2rIA^CrnZ{0+@Vk~UR=fG|_`Ekc=qArT#Sw5v9FMW#JIiFA` zx6p*q0eqt>ockaA@!3owAGoZkIOmQUm%V9Kxk8c*4#JR%O59K$&(Kf@KFI~2uG&C8 zMNounytAqOwPE4@2E};+Qb_hbVdCn@_3^q>&~3$2(DVKXnLAqU*zZ^>GBKC}0?LDU zNv?VPkVs*!5>Tz7*z@zmK)z8nES}s@ona<0O7J`oRY%lb?>C!HSRaq5S6a=be|x`P5sB zqu*Z|O+t;Ed(O{B5-=%Z->fv6c_QA?DK}ftA$~w_c)}TUK!NcAOv~IblGd<}S*p7(rc@>oZYPUR zfYpgdcIgxn^b8y9LjZ@w?L8NxcG00$$#Pxq!L1!sGaPw0iTtx5Q5+$AsMIrXX+>CN zjB?NX$0Q)|&ymqw_YHP1fVY_;wn`y2_E^%S0yLodv6JF}<5a+TZF_ayz#GiP_o>F2 zG}_D`XRbT6d+`W5&B+z~FfsQH8BD-Zw2&ibHuwg<*p8iw0)ojWXdQPA({(*SiVP-5 ztZ;~3uBZKplDN5;U=9Z6V?C?w*iR35-EpKNrdgkSSJF*jcVw`*W`}k@HDnUmswQspYHielwVdK$k3&)?x}M{QBD`QkngXg z7V42U$VD>zd5Tf&0&<0ai+_nDb@Y}0U^{}%SXRoDtl=TJ-f}G7B+hFAd0^3#9Kn}- zxOegXJFf2A$>nuKf)fuo+1*rg@8Ppt$?`9tzD3 z#ASUN`d_e{G=$rKeFmlz6-82<77jq9a=Z7(czB9rNK278QCRq*Sc7m_vX!WAH&etS zUhwAazGtM-TaW>hcq8~gi$`DlKYw8Qr;HU9;%U4u7(+nAdlzWjE__I<;PB#pEQ`9u z-S*>!CMdJ`ZBaoXxgdT8U=uJ$mR<`qZcVNLXLNS%P`vVy0BSJlxxI{i7zW-+5^i`< zb`J-2d^4h_TNtO)llG=cl1bEU@R+R#ozFl^6pSCVcYvjtg=4C3+&HoP$@J9a*bShD zC@jXu``(EfORcKGi7z;Z)`J7@IYJRXm&7$}o8ny^+y7?&VUHDUH_Ax;#EkoE13Hs( zOReH*a4ciGwxz*C0}WzU0R9oJJm-$2>PL&lH9rorVg*OFyI=Np+)9Tf6AR`|3l=ZgSruZBbuAe?j?bDVWCK6Pm!L9vUIXB z)Ce5;kw!2CUi%@k8NDV%9i_x(BU~kl3MTMB?l69X)7wVEmynkJqM0(aLywK9F)b%X zMo|c4LA!ylO?yjNJX~EszyiJtwnpw*1P?i%P9!a^!>vKu$03Gp zdmB1`QEfHMST}0$87FtqbdolBbW4 zTj2atvbqnkKnqO%o(eoC*L06AlW^c3}L4fh$_A@6ctj8O=`T zW|46F*E3Yds?CF4E-UJZiU0s_A!VuepkdF9A(Yy2)oDK%ACFHlv>rVk(5?P7`VnpG zj5;O)4BU|)FYti6Hq3QbgHAn@v1hrO@~~L`^E*RR!FR~FU?~cflLBrEI7XJMS;TXY zJmC|?tAJiZ)*5s&WU%&>@EB2(mf}KC@Tj;-ZX-X&M(R#_-5*W7IYF|fhOYL%zu204 zWJTv4oaWh+mW86|k;a{tdO(J3aWOZUx8I+`xB{mzqDCkEFaurVc#e@Gq6M)acGE`h z*1jW{{I4a^BL_YQY_D*VSb{@r(*WyEN#@c0zhdP_q_7+8zaOFiTu6TsJQJPD^JTV$ zljlZ$y1;`ba^qbhbj9(J&_cPG^S_I2c4N`RhQk7{gD)2AGvNa#V>n*&P1VgPR2%Ub zRCSP~0kQ$}lw3MmRk=1EuKpbwM_51~awCZxGr)(sk2^w-fo4{Xr%%8E-WphH0cL;u zz&?{3N{u9BwLfO#`9j;3RVHH=)nl!r2AwFO;Q&uPFYI85p|~kC_UCZ;ejFfvAc-l)>#R6xw#7}4Ds&T zJPW~U3kMkL*tIH{u>*WU?)CJ`$ia9S_g0$uj66(n7PLFPZx&z*1X4+|5u9;=UPv%# zSdf7oSy;Q@2Uj8!dBh9P{VvxbdQQ(HBkGV0=sn9upH`bh6(OK0(?_QHQ2ZK79v3;) zm)`Y%;QDX&`x6I{?mCq4461(MmQslEqE(%A1TbcCg|?E&8(NvH)lj25|CWW9{O+Y> zEC(|^>~$gg3p zH?Ae6ha8=f?yVLrC(;Z5+RzX&blH&+aTubZD+Vx{BtZ(?jKTvmCP{qSIkI9LfRjKO zY~X}gaDuJB7ym^Zi4=&h6Naoak^hU$`XAvqc&ZCZ7XClvF+%~||8v?hltBC6mqYos z|9uR=uK(w1{y%(fYFJ)YFjZ0{E8GU>`Z){&LhusC;WEnMA{?18e2y@|ZTlj+PBkX4 z6LNzC!b~-mP6cAgXBc_fF1ML9CD{~uWG$jqS4dS2(#LMt!}sI^ILAu(@GB=DA1B;| zZL+2{r?aA75?>}-{*nxzg!$f$TKo(7Q=XDLcG%B*O#|c{K^VXgyIpL>yLo)SzTW+l zpO{!On_u!^PI9S9^8PCEJsk_n+0*XNKq>5~uK$T}vLP)iU6etxh_#moA56aoQwBn0 z6Ca6yl{`2Gv)vC4%=i|ZW~xx!3wDvOd@whH7@oVv%L2RetBM!=9T@t$G=l|Th4H#h z%MhB;6>+K1BwLU}P!z+wk@# zsRW1J1R6fehf*p@@OgwPz#lIGzZoU9+`&*Q4;Zj~l4(V?Pe*CqC8Ui*K=lgd2d)7W zN`kh21X(fuAajAe;*7q03 z3G%!4C0OI!#gh~EhWEha6F3}$KYKYVL2V0f#GNcWPbjm&(?obWWEM& z${^D$n|vnb)-2aWfJXzNA|YQiIhC>g_c>I=JWx)VihlwvFpcM6!6Db-S6ndZE*Hlz z&;o!q{iBRC8ET&jm2R^bww;SvO8oD`q-x>|OG`Cro-M7c-y)~c)|VdQE`-7X2zKe! zznagIlu;$inwVHT@;j?IDg2u|&yRr;G-z{7JFKh#_$ZB*NxntPj=8ouURVt930bR= z#2nvIN$?dz$=O*AG)VqiGYf`M`^{^2C2a^CsHdh|?pe)F?47gY5`pSW227}Fze(aY zn0yY0Ah_2RbJ(ALPm)0d;tF{zE};*6o;NA5k$|=X5vfOGiEtPXi}5vP@cpSS4$KKe_DK@q7`BAUVN&l~ZP4L@@Y!I| zDd1QAarTyPEB$H3IHNGUSw9JHsUCcIoIedQ_%l8eolS%Vu}z(0$h%~_^X24geeR2g z?w65MiU|7A+tjxLY}4^#ca(4Y`SlA+VE9)G1G>GAv2lW-HKvX;slwH>&3Kpzadoi7 zznzfjeY5~XCBhyBdp{m0K6H*+Y{(qLq%M*Yt!=!&zlb{1x;tPtgWM^6S+0kb#O649 zq<6ja-kdzXT&}z55egr0eH#}LQZLq~>rx{LPzo*+DmUCz2i6aJBGy0qk#Jan;DyB& z>Oq!)KBzz{jcbZX7MPh57}Fp!U-gG8AfJ=c@49QhwYI~Cb`dCArKy}}abp6=eR2yE zI$r{zG@yM$C?kqC>M}B)dTl2IYVkz<@_e@$h1qdfJ#w1VTdBX))NDWlV`-#hiQ&4N zRrK-_K@jY{D#%P8&GIv?{n*LB?Zu(TfMB@;!F8oMnbU0r*HO5R`3KsDX=DQt%U(tn z42?q(p1urK0YCp1!IKN^d-Uwal0){eV%Ef;R%b)FC|j++ysjEi{I zAFi=(LqCy&)Us6|cVt2UQ9s+|66cjWH>WYKv!EA*N<-ZTZyGs(^0#UJ*OYh{?&%Q* z8uLK9lj%eFR{=ljL!6eM$po+ke`)!kPNH}(cN8-kjipH?tvJpCam8rn<$ZxCvqA$f-P9=!{^pfSR;3|cG((h zRj32p-S2HTpjNTW>Zc!2?r8l68P#hu2N8upu99e5A6bMvSCz!<*`G4A=fbkepa(kO z_h~~?HJbWr` z!)-W4BTRr95T#ERzNtC!2hlowI>JWgeOW5iIey38u<(MbkHeflC4q@v zU{E6M+L~mp&4dDv6ZPrH*}6odJyc(z0)DoF0POol9sc>g1OndOl?RnbQ9X!ZL(yX+ z(`p!fZNKDaGc2yn-m~8WQpWB`HZVbj>ATjo{xb($jdQa zAv4QATj`1DX^}9Tvm-)-+wDbTZF1nCUA`NyP|Ui_FJvf3US_)e4y6^iGfoD!Y= z_8>us>}L!4!Iv`_s44l?mwz)Y1A_7bsF2(4Lfo$&T+(Rx4?;tTDxaYI#1wLb=q`$uh5$tzAqK{-NEYPIns_ zST?=0m*XsNAKdGkA@E|7D)=e^lM>S}n1ND3Gd(K5f!R;8x37^o29J6Ev+?XBj)u%w zC$21PFGx?L22%o2NgWiPu7o|!zwEtpJG@92z->6a=AUhoBeIzFJuB<<_iy3dkH0?} z-Tpb8L4fku&$s2ixCM0MvjCEkx7llEG~)`IV~jcm4iWHsn4}@V8*0o{aknZtk-)W= zGl~84oq8mV>pn79 zfNIzF+(bGbRkd68s`!QMF_#cLfyA+sicvT7)YKAPdy|H!X&Dz-KgO%|Iv6ya+oCYy zn?O?^He@zi3%_L1%oGDj_*%T;M(&?KebPb^)YWU7y_Uk0%w;@_Mdd(6k%(+16>#n8 z+>>!K@d5g5@SqzOjdk@9B*%FIOk8PvbP33Ynh;1;b_@2_5VmFF^l}w ziKalkM)5g_;ssP67=)z1eNl2_8M;KJxeUZS6h;S`ahtt8vh{5@e|h}fOLxacPo(kC zazOx%pTe&C4mXCze4_Ar_A61Vem7fVtPFPl)~$6j zRXOoC+FTF7r9!gx{McDfR*}l)%xyDfN-snVrF*Z>yL4!FQ8~Y-gE}foSQkI$tlxbw z+Z@8DNDA=%R9CV^n|qd9A4UsGcXjNj#b|yKLZJUVF=pavP?7;GBL|jh03TFDrggJf z;{j%i(W*Y8$Lt&=WrnD>F+7I{;j56KjbE(qg+l`ubaH($?HC`!6wJ)uJL?x8!vdl(Q3TiDP#8$ z+UER>@l!mW6)q(Z&@pMLvmW+@Cz#e{$;P&~{T&x0>I6w)r_JrRcC6jG_h{fDO~ml| z_$plR82IV=XDITc68DFOGnt>LLwymejS^V02es$Z$`|?D_KlYr4H?c!w@|$aS`pPZ z6E|R6Se>d3uv#P>Wq*U6*wbu#fC`!8Uj<)9I=V0H9}lap#lfBJmwRTOO^(2wiQC^@ zr%Q08LbDdqZbuu6g{he}=1E8Q?CIDDO6ukt6ZM+8?Dih#UV&4D#M#>J#Cn(jX(|&E zNK0ii3tx(b&c)AC%%hDdCt9oYu{vHC-Ajx}hPU5hi`T#}#o6s&khoG~SdtGm-+edM z8nID7Nh0NCWeo zD&J6@rPYSf$@~7b32~P?bA7iBLkS#EjmnFTd=enXjI?~b_lk^t%}Bp#W^gl1NV=3w zs!C4fNCaC<$+O?Z9K0*<-5s6db~`g$!!P!Ua!q4j5tl?c!<*yp^{IQrgjm78nT@aS z`MKxkJSeoC6znrB-L1i_6~uS6Pi$}F!d=mROL*NSC}xdsJ^Jw|IK1z#w4hOCCi_gi z&94_4n!}jBhkQ(EgtfT13f`?`IsL3el*uF*KOW=J^9A35>m6mT#%3)WLHx1rj9tl> zyhPoCtT6(f0A?yZoY-?t>8wK@M4!_hu1cY6)?DPXRc91XjH+KIiy*iI=3><4HCxwPr@}N#3~{fBW5;{kUig=Gm0rha5PGhCau+_1JZ( zOSGY>f(tjj&X7e^=%Wf6>!PvGROr5w)Ruw83o7M%%Jl;P$bpJ7lG-G3LmTaFQys*VZTv<%n(~jLxIEi@jS-md4 z<7KUseltMBQY4BrVC zwZsWFjM5SBFcfs!E8l8I7bs%@Li?Uev&9#JF)z`Ef5ft{S7=+TdwN#MNIf+mY9PS; zc?-aHjwOpy=#KoA^Nsuo+FAzE*ZPQ{O6d&3wFxXeM5b(Wt| zqiGd=+!qWJXh~S|@%R+OWgB`}407v<%&~uAQuf*M6^v_#_y=HJpbaX_XAKJmprd|O zN=g4R!kv=ery&7S+D0gaISLHT7fs*uk;V!QBE`>I4W)c>?GVg8;R(QSQYW1~mHHSF zYRXypyQYaXxO<{SQlSP*BhOw;*Yve|Yi+E4+N4Hg&wFUD{Fb`2fnH;^t;F zNc#%!2v*yur1B6l+fu+z!oqqt!HhdQOAc7|DR}m*{}Ifn72N$?-b#^88n!>P&*@cp z8Atnzixvb5fEXFbhk7Ww=*u#XsS0iFqqwf7#b?GCk+O>UtrbA(d=k_YSj7 z(;kdgAopxsp%LPKjZ(~V*fI7(am3I=BgE!L74644=x7E2PhT2IC&-=%HQ@RJ+6jP| zv^{!&)ZBrePvrgJw$<=~gx?xWDOI~29}qcgz^MmdWz9l`^$3(%#jRP!wRmv`srdv- z7PdFw?kdBO($aK(MJ2i-C6R0GC-82Oa#{I;R*g79mQdn{>o5GE4<8`yqeevE z#ZXZ<-vmJ@j>X$#hs~On1%dyXwF+z7=O9P$enn+cIyju62t(+>{@iGzzom2d zm+p|D+X<;JYPG&JH79#bvF}5rzP7}+0KxQ(-IDjVl0Bm?G)D2~Akz%+KEI~Ro39{n zs_?>1`iIV_G#S#LM$~9{Qz6%+@ISo4Xq9@BSgA3{4^XD`q0UR-Io#P_cb+dh2MsPh z0`HX2$&jxO<+c0@Dp%8@xniWq?d1-eMuVGYpUePa{( zK`MOt+&A<=S)n=6XrT26i^%2fr-hVM$C{fe(Kk08GV&4{JX+?Tf5A%Pg)691<_Ab~ zFtA`n=hYEn@sd6jd^Bx^aoa(aoxmV3bf*)}nC29N)G{r3Uoog23pt09YIO+;dT?Lv zmsEGV*fPlC<6s9K#T|^W`)xDa=O`XPB1%M(0&X`6}?H-_lyp|ZN z_&CBGD|(NJJiag?dygzVSmA|3##U;*V){%%faANuB$=3s+yMz6p!->gpH)6i1Gl#A z{&Fm}XJgPKnQk`;j|9cY6HoT8&9gwPpG+uW4FzL&bAp2fKvW!Ex5%Ivc%;Wwh>l8& zMTjp~bGjgzC}AU4-`ks#;j!X5t4Pb4cu~NUUS9TI?m0n$5BETs!}riQZE=%NyGpw`#@sZSkqFOyIRmyjbkAAEj} zi>6z#Pjx2n8spn3;Bd$Y_MK3#GH0sE!9sclSCOJ4@7d zUNk`wcCmezs^15zH{I6be2V%HJuVq!nQEFJ^}P2OivSmh3oCh_4N z395%PES#ont&TDV-aN;DaWJ!9mH)c^`=}(uh@R}bDp39R0x#4Vm9x|+^Yjhsuc@*~ zr>(8paFC~4s9`1IX&Y?c8d5CF-n%@g6z3 z`aa;Ux<#@@VHc`ggy%;pET<`!8sqk~v1upxIl`poSaXCUR(B1NvcDzfmmKv(;z(DJ z_+l@#+%#f-C{Ygj?a{Imzeoq<`@+-tpe?7#u2!`qV zycyvAy;WjL=1~XutW=Zd>98fl&0|czGrfG@)F-c+il_he9vZFHD>XJ!M3QBNmh*mR z7g=2obv%TI1}{6qJYUz8SChPdpK=Qo^PzpP{#_`QFmD1AiBS@jTi;cJ3h1%r%P$BUCJ{6)%9f`>Fr#nGZBE1r zaVdtPryY+N)#S@sQ3-ze>5Xp(OTjVB(%!&Eto)d8?qeyXBy#&;1F7-}m?ZT;sy?_e zYf9(X-(9?$xOT}mHlw8kHaiF58rI+De&!>em%Sb=OfzpO>sPq5YvEm>n`(ZKBD?E# zQphG)RD^r&a8+)3+X5Y?@;Md74w>`aKx#AhyU~Am89*w(YSbGUc9~^3Xna}=(~a#F z?EjaX6c_%$)@zD|HIRk7-o%rgZ=UHCKD*!T=?U>PZND{X(+Ip&opVP(*RblJa##T8 z_>arQ(f02#cPLBh*rAg@Ibf*~9LtBildAh=+ia<$jf8CTl{pktDiD2J^F4kz$@My-4s5DtZRb= z4%JWwyk}0uZ>MI>jKS5;eNwymYWqi{cjN!|8~hs_Rpu&V6#qw7)l0uHL+8Aa938`# zLw+zSyGfX}I%E6j@{K*$s3Lu3uRCm$k4Nq*AvlU>_5I0pjLxWu=NL|gL%FdU=4 zQIA7%uJsJm-n#^6`4+JWzfmlh?%}mn_42p>9KLHs;>%b3tYZNgzA$5fKO9YBoD_BIBk!GHl)Vz6! z+K>J6b3>@@6In1f#|0$GDY(0G+dry#ZtTGKmyEkLVq;?pEvYG!JZJJ0bH+QTK{ZM_ zu5u-69`$$x@>O6zsEUjrF8nkqVMiBG`}hhYRbG8MHJCV0pxyB zNq>};JKK*xY%-)1VojZK-L5Ks#ZQviaCr1epRQ8%;(I4bE_Rd^aCuqqX;Z3LXXa6u z&DPwU*2v-W)DC7KK8;S+LTqy!n|yW=c2aKPUV2FsUyniD%BHTRZF>cY5lfW-3{AfidxY1|*z9u^tI6AIv^ zErsimr;@y>NRV@3FL{=VHjd zD6`<3iGBJp1}S2tDfp~`T|%z8-Rs>oSL0&ouwB5wpym~ncdhi}7B?(}91V-YG^oo$ z>+l?6*%GkpE})f-b{9E^W9&`=H@+b909J#tLL9|zQBaGqd)SdR?$<{KXRaM!QZbrh z4WkEY=qdZPQ5l{nnYkDljwJh-G#%hIPi8lhnb;|O;@b81cho454Dyv9~ufj?OK)gHyU`=4{+8FIeur zG>9JFVB8sg(T^Z-z^)NQ5nJ`e+GgHA@a6ddMT|86BFj5{H-Dx(=(7sKBU8YKVga(V zFO}Fs*%*Ad`9KO<(eUW=-xX4<`FJlv9i(Spauu@1D8zS;on3t!4Zfs|9%Aj{$lV8# zQ_cBBwcx(PO+mb!%dc;ezC>5h@+|z$`#B~9_luFePIcwu-JuGz!a*~v~QxtI#ugcbr~~8#9hkOTJ~L}RW`E7 zTSj-_-WwoOuiHc~0T?gxX?@flS8VH^+SV;`3YF!0_XLZ~giG=x@m==(nh;f&fj{q# zX!rwcvaKVw%+-{aY-#cLr(@^tm3DsPIH$3D^xYkhI7H+2e(-ZvjrW9T&tVP!@dqU2 ze2B#F7t7azD=k$B`6@LJu3jTDAxG}{dlcl-jb=VU!4%ii*dRz)@wW^n?9w@%#u5kM z$%z;o2Of}oxfn4)rN~FX9C^o7SoaSxvsyKfXT1g2H(5pkC(e_;SYLR&wHL8{rWv14R$x+o<~k3`V7wx&ZWb#N}CgunHG zDdvj%wG0vFafE0T(CFQ?y^G*~26Wy0a`9DNkt%Hep_KhVGowsv|0!Jx_U2R_Zv;GnSs@XpE-6!Lbyk&FnQ59p~^IUX>m1o%qZq$ajyoe$bcZ{fJjHUf#wMNFXz&-U>wwGZp#!K;Qe+2!XPn&SxbPOo|GODq&Mh zHPha1C3Op4n-;cYS!{m?%ZGW*pU#@YIa&D$m5OX+@ovHDtgBlV^_ukLHkl&(1|`|P zmwRu18SWy!27^C?$wfy{m*!AB6%dWJEi8@OTZ)Q!yZ-L{Vq+>EwJJXxg>&9gxYta7 z^G1jg`__vLVZo?Dr|vsP-IIh!jz^Ai1>G)%Ojlju`X)U?ZReW$77?mdk6hpEhnTkrWS!W~X8`!T-g-V1$o7{P6$B7M?WDRaCz&%4g@ zWVN%lzD|n^p~`x1P=OfyE8IEITrc2BzS>SsabPtR=63)DDjFO4wh%wd&2HIPT8R2R zgcubm2BxywqZAX6LC)_<7^iq#<8t4Nhz57krfdTI6c!9vOIA0EXEL>8K+~q=FS5w-8iTgR?tv+MW+N1oy90SxckBn8UIKT?1j^+Fw%)Yq zcK4`eDb3gB6iQr`0K;x&G3?7@sJ zTdqOF`uBlH4v|0CN{cvyHhJ?lz!P7u#wN*FhQzTw==ix@Sj)}gRbKLr%W%IxnJ>f~qjm!1&*M;~5 zj(Y7m_iNKpnVOoRoB(t3j4MgzNpYnvj*+DhBHo&RRFY#WG)@MBDSP-Zl|NL{G+$}g z_SMwH?B^a`)LR8L$9J?>D5^a)0Vf^~j}?A=qqS5J`uZ&`hvE@-g!YL!9q>KnT|Z@#&R;xK>a6YNY}2>R)9X+KWrlAh zPXtH*_^T$X+1hZ^*n@tTeDs?#Wtt^K(X7wtqpLy|6t zAWlMr_3E|!__BRtlSsL~Q(fR{Htn58$_=PpdIFIp(v3z6G>Yq(b^|n;`f|(_LC)=H zKKn&&QyjxDP&6`bYiWL}>2eFmdjIq9NA}@ov1?pa`uT4Yhlk2|H|FM$<&l4h;m_=U z=5a%tTDcA(c-yza{5{y7l6>)F6$Dykmk?_^$2y!hL~0>3S{A=C@`iY`ay?WHtY z79xmmWr-zsG#8=Q{7O$Uy7$A9~o(+oNgV8B;adS~Px(~_^5YWo?Q_#&_>2R0y<++*B(zrUqpI)uYBKX zjow(_xwf^mzMWg_`#TrFwR6)ImTw)3om581ja|Gx+U4Ea`74Jj8R%I$u4D;E;j2d$?|A5dxfuYy>!2N_v!4e6n#bi;>q$mV zJl?c+vv!iVJUYkhwT{)A_f#8;kbCVMzhKr-JfLC$ITw6?DqT&t<#Y?!J@((RiQ`p! zkw$CZZ~R=ph-ZC$>FGrFGrIWhNxx^^yj0a0WcO{EhE$nG(=W;U=Z|J{OlE%tCYmlE zPlMHVhrachq*=ZW68I=;{~$Cs}e_K+7)qgs_!Si$sL_Ny2v|$U}t#-T>?u}dU?;HnJodPWrDea>obq`w6%@Ir)zBFlPJV4(GD8^{ z6U~}B@QzDcf!VlPVQ%$6zW97^>NS#RU9E34CDb_>rSvH&EhmYKn9!K!-0JlkD%~Bj zpE^Qy-f~N$;!8>tf>$lV_v#i?5fPdE)7oO<%jos0v>CS1{!{{gXK!1My@nTfYjK^j z(jpKJ3U&4O8MIP1oD$)?_aBpT`-aBBu5BX87?sNininQ;F8V}gqxAkNM6VemXx#eL zQ66)|o0T^edSMVI^_a?btsYt~)EK}DekF~n!IG%mJJ%MTMQDp8rtbR4ORP2W}6g z<`hRQY491(Jh|ww+FikY2paYPNqss*S!POoKn7CncVGp&hTW8SKE=Z)Z#nR!Ol(Xi zGIpV|NklA)#~wiBiN|#hbLDSgNqbXZj@ax5)IoM_$sy!-R!A+Shh(I(_$|7 zp{4~}zpOOYbj;j?4$h4wU~hc-0{#84x8cy-yk)U*i6T1r-qy zFl+C}@rqo8k>-Svi3s2^F4TVL5hwz`9(nDp{5$aPpZ#~r>n-?t;I$|5dJ=R9;@=tn jcb$Ko=>LD2j@}oTJ=Y?`17}hc0Q99Ot0q$|WfuBBp>VNu literal 0 HcmV?d00001 diff --git a/shepherd/static/PerkSelection/css/perksUI.css b/shepherd/static/PerkSelection/css/perksUI.css new file mode 100644 index 00000000..70a739fc --- /dev/null +++ b/shepherd/static/PerkSelection/css/perksUI.css @@ -0,0 +1,103 @@ +ul { + list-style-type: none; +} + +li { + display: inline; +} + +input[type="radio"]:not(.Alliance) { + display: none; +} + +label { + border: 1px solid #fff; + padding: 10px; + display: block; + position: relative; + margin: 10px; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +label::before { + background-color: white; + color: white; + content: " "; + display: block; + border-radius: 50%; + border: 1px solid grey; + position: absolute; + top: -5px; + left: -5px; + width: 25px; + height: 25px; + text-align: center; + line-height: 28px; + transition-duration: 0.4s; + transform: scale(0); +} + +label img { + height: 100px; + width: 150px; + transition-duration: 0.2s; + transform-origin: 50% 50%; +} + +:checked+label { + border-color: white; +} + +:checked+label::before { + content: "\2713"; + background-color: grey; + transform: scale(1); +} + +:checked+label img { + transform: scale(0.9); + box-shadow: 0 0 5px #333; + z-index: -1; +} + +#div_top_hypers { + background-color:#eeeeee; + display:inline; +} +#ul_top_hypers { + display: flex; + justify-content:space-around; + list-style-type:none; +} + +input[type="radio"][id^="mr1"] { + display: none; + } + input[type="radio"][id^="mr2"] { + display: none; + } + + #masterrobot { + display: flex; + justify-content:center; + list-style-type:none; + } + + #masterrobot :checked+label { + transform: scale(0.9); + box-shadow: 0 0 5px #333; + z-index: -1; + transition-duration: 0.2s; + transform-origin: 50% 50%; + border-style:solid; + border-color: black; + border-width: 0.2mm; + } + + \ No newline at end of file diff --git a/shepherd/static/PerkSelection/css/submit.css b/shepherd/static/PerkSelection/css/submit.css new file mode 100644 index 00000000..561fd406 --- /dev/null +++ b/shepherd/static/PerkSelection/css/submit.css @@ -0,0 +1,48 @@ +body { + margin-top: 0px; + margin-bottom: 0px; + font-family: sans-serif; +} + +html { + margin-top: 0px; + margin-bottom: 0px; +} + +#submit-button { + padding: 5px 30px 5px 30px; + background: #008000; + color: #F8F8FF; + border-radius: 50%; + font-size: 28px; + + position: absolute; + top: 420px; + left: 50%; + margin-left: -70px; +} + +#submit-button:active { + opacity: 0.80; +} + +#submit-button { + cursor: pointer; +} + +#feedback { + color: black; + font-size: 48pt; +} + +#text-area { + position: absolute; + top: 150px; + left: 50%; + margin-left: -150px; + font-size: 40pt; + text-align: center; + font-family: helvetica; + height:200px; + width:400px; +} \ No newline at end of file diff --git a/shepherd/static/PerkSelection/js/perksUI.js b/shepherd/static/PerkSelection/js/perksUI.js new file mode 100644 index 00000000..d226572e --- /dev/null +++ b/shepherd/static/PerkSelection/js/perksUI.js @@ -0,0 +1,228 @@ +// image gallery +// init the state from the input +$(".image-checkbox").each(function () { + count = false; + if ($(this).find('input[type="checkbox"]').first().attr("checked") && (count == false)) { + $(this).addClass('image-checkbox-checked'); + } + else { + $(this).removeClass('image-checkbox-checked'); + count = true; + } +}); + +$(":input").hover(function() { + console.log('string') + $(this).prop('checked', true); +}); + +function select(id) { + document.getElementById(id).checked = true +} + +// sync the state to the input +$(".image-checkbox").on("click", function (e) { + console.log('test string') + $(this).toggleClass('image-checkbox-checked'); + var $checkbox = $(this).find('input[type="checkbox"]'); + $checkbox.prop("checked",!$checkbox.prop("checked")) + + e.preventDefault(); +}); + +var socket = io('http://192.168.128.129:5001'); +var t1_name, t1_num, t2_name, t2_num +var cur_code = null +var master_robot + + +socket.on('connect', function(data) { + socket.emit('join', 'perks'); +}); + +function getCookie(cname) { + var name = cname + "="; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1); + if (c.indexOf(name) == 0) return c.substring(name.length, c.length); + } + return ""; +} + +function checkCookie() { + if (getCookie('alliance') != '') { + hideButtons() + } + t1_num = getCookie('t1') + t2_num = getCookie('t2') + setTeams(t1_num, t2_num) +} + +function storeTeams(t1, t2) { + var ca = document.cookie.split(';') + document.cookie = "t1="+t1+";path=/;" + document.cookie = "t2="+t2+";path=/;" +} + +window.onload = checkCookie + +socket.on('teams', function(data) { + dictionary = JSON.parse(data) + if (getCookie('alliance') == 'gold') { + // t1_name = JSON.parse(data).g1name + t1_num = JSON.parse(data).g1num + // t2_name = JSON.parse(data).g2name + t2_num = JSON.parse(data).g2num + } else if (getCookie('alliance') == 'blue') { + // t1_name = JSON.parse(data).b1name + t1_num = JSON.parse(data).b1num + // t2_name = JSON.parse(data).b2name + t2_num = JSON.parse(data).b2num + } + storeTeams(t1_num, t2_num) +}) + +socket.on('collect_perks', function(data) { + var origin = window.location.origin + window.location.href = origin + "/perksUI.html" + setTimeout(function() { + setTeams(getCookie('t1'), getCookie('t2')) + }, 500) +}) + +socket.on('collect_codes', function(data){ + submitPerks() + //Change to next UI + var origin = window.location.origin + setTimeout(function() { + window.location.href = origin + "/submit.html" + }, 500) +}) + +socket.on('reset', function(data){ + var origin = window.location.origin + window.location.href = origin + "/reset.html" +}) + +socket.on('code', function(data) { + console.log("got code") + console.log(JSON.parse(data).alliance) + console.log(JSON.parse(data).result) + console.log(getCookie('alliance')) + if (getCookie('alliance') == JSON.parse(data).alliance) { + console.log("setting text area value") + cur_code = JSON.parse(data).result + $("#text-area").attr("value", cur_code) + } +}) + +socket.on('code_feedback', function(data) { + alliance = JSON.parse(data).alliance + feedback = JSON.parse(data).feedback + if (getCookie('alliance') == alliance) { + if (feedback) { + $('#feedback').text("You solved the coding challenge! :)") + } else { + $('#feedback').text("You got the coding challenge wrong :(") + } + } + setTimeout(function() { + $('#feedback').text("") + }, 10000) +}) + +function submitCode() { + if (cur_code != null) { + msg = {"alliance": getCookie('alliance'), "answer": cur_code} + socket.emit('ui-to-server-code', JSON.stringify(msg)) + cur_code = null + $("#text-area").attr("value", "") + } +} + +function setTeams(t1_num, t2_num) { + $("#mr1label").text('Team Number ' + t1_num); + $("#mr2label").text('Team Number ' + t2_num); +} + +function blueClick() { + hideButtons() + document.cookie = "alliance=blue;path=/" +} + +function goldClick() { + hideButtons() + document.cookie = "alliance=gold;path=/" +} + +function murderCookie() { + document.cookie = "alliance=;path=/" + showButtons() +} + +function hideButtons() { + //TODO: $("gold element") set button style to hidden + //TODO: $("blue element") set button style to hidden + $("#gold_button").css("display", "none") + $("#blue_button").css("display", "none") + $("#as_button").css("display", "none") + // document.getElementById("gold_button").style.display = "none" + // document.getElementById("blue_button").style.display = "none" + // document.getElementById("as_button").style.display = "none" +} + +function showButtons() { + $("#gold_button").css("display", "block") + $("#blue_button").css("display", "block") + $("#as_button").css("display", "block") + // document.getElementById("gold_button").style.display = "block" + // document.getElementById("blue_button").style.display = "block" + // document.getElementById("as_button").style.display = "block" +} + +function setMasterRobot() { + //TODO: set master_robot + //TODO: set clicked robot number prominently +} + +//onclick +function submitPerks() { + team_color = getCookie('alliance') + //TODO: Gather list of selected perks + //TODO: data = {'alliance' : team_color, 'master_robot' : 1000, 'perk_1' : '' ...} + //TODO: socket.emit('ui-to-server-selected-perks', JSON.stringify(data)) + console.log(t1_num) + var robot = document.getElementsByName('master_robot'); + if (robot[1].checked) { + master_robot = t2_num; + } else { + master_robot = t1_num; + } + perk_1 = getPerk('tier1'); + perk_2 = getPerk('tier2'); + perk_3 = getPerk('tier3'); + perks_data = {'alliance' : team_color, 'perk_1' : perk_1, 'perk_2' : perk_2, 'perk_3' : perk_3} + master_robot_data = {'alliance' : team_color, 'team_num' : master_robot} + console.log("sending perks") + console.log(perks_data) + socket.emit('ui-to-server-master-robot', JSON.stringify(master_robot_data)) + socket.emit('ui-to-server-selected-perks', JSON.stringify(perks_data)) +} + +perk_dict = {"cb1": "bubblegum", "cb2": "diet", "cb3": "sweet_spot", "cb4": "taffy", "cb5": "chocolate_covered_espresso_beans", + "cb6": "minty_fresh_start", "cb7": "raspberry_cotton_candy", "cb8": "artificial_sweetener", "cb9": "jawbreaker", "cb10": "sour_gummy_worms"} + +function getPerk(name) { + var tier = document.getElementsByName(name); + console.log(tier) + var perk = "empty"; + for (var i = 0; i < tier.length; i++) { + if (tier[i].checked) { + perk = perk_dict[tier[i].id] + break; + } + } + return perk; +} diff --git a/shepherd/static/PerkSelection/perksUI.html b/shepherd/static/PerkSelection/perksUI.html new file mode 100644 index 00000000..4f5d25f5 --- /dev/null +++ b/shepherd/static/PerkSelection/perksUI.html @@ -0,0 +1,94 @@ + + + + + + + + + + + +

+ + + + + +

Perk Selection

+
+ + + + +
Master Robot Selection: +
+
    +
  • +
  • +
  • +
  • +
+
+
+ +

  Perk 1

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+

 Perk 2

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+

 Perk 3

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + + + + diff --git a/shepherd/static/PerkSelection/reset.html b/shepherd/static/PerkSelection/reset.html new file mode 100644 index 00000000..687fd945 --- /dev/null +++ b/shepherd/static/PerkSelection/reset.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/shepherd/static/PerkSelection/submit.html b/shepherd/static/PerkSelection/submit.html new file mode 100644 index 00000000..51290d7b --- /dev/null +++ b/shepherd/static/PerkSelection/submit.html @@ -0,0 +1,11 @@ + + + + + + + +
Submit
+
+ + \ No newline at end of file diff --git a/shepherd/static/Perk_1.png b/shepherd/static/Perk_1.png new file mode 100644 index 0000000000000000000000000000000000000000..84ea3cf86673635c94dbb12f588313a8b27cf70a GIT binary patch literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-qdc>fF1Oyq1wbL$%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq_ZY)5S3)cEI6rK*7h_Q~Xyo)sU=p5j0M5M8>fj>5*FNF&Qw15m!wCijH4fL4Or#RE zraCeF_`YJ*s~0ok^Fm6^W;?FF+Vr;U_e5^C=DxnOB71J;EV!9-C~NDcx08L;_8KlN zjdh=Y{`>teTdQ~u7ksgu(J1QrQ&780Y2W>P_xsH^wQ4P7>fS6~rBxvFyf;^K@=1q{ z5iMoAb8jyXTWxrgeP-LT%xRY+r=_YrHny$U6Q_Tn^sZ6(`s;hkFU|5>USKz0xAFbtx^moSEOKKb_l0P55-o(x8v`jytcv-hBLV;!N%7r_UUaS^fWT*P@0* z3Hi4+=bJNU32?RU34VAtFTInMK|_S=%!V@u%Ay5dzdV!TrL5#JiDmialScJ6a*oqd z--lG}jJcI0+{qHGBV4fk_SUmgy;Q^BO_AyT{kQL8#+7fy1sfv__J}eq@NVFdlonQ9I(e_}Z^ky*G2jD(AU-P71heV&Z%G?COG)vT6Tx9sf_`K#Q#z c2N*u^?y8#a&)f3h8Ym@sy85}Sb4q9e0DyrkVgLXD literal 0 HcmV?d00001 diff --git a/shepherd/static/Perk_2.png b/shepherd/static/Perk_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a434e297a5c9a1f1a147c3d2d260526d798445f3 GIT binary patch literal 817 zcmV-11J3-3P)oI@ z2n7)wD#gLc$)!k_PNLw@(L!-@6ro)@Cu3;+=+J8aPA|N?JRfyP z-n;hy;ovUEarZ%T_a|yVM1*e?Kj51MfeB1t0uz|P1ST+n2~1!D6PUmR)*-sxE@Uzp z@cDeOzrPRL+uPu9IN;*q0-m0pV6|Fly8zTFL{Y?8EQSVy0RdobIXgSUmzNjK)}ae{ zG#cUY@$p}wzZQ?jgOVh%30^Lj==FL(js01&*({sjhld9hrd%##KA*>}t*y1-)6-Kn z!GS2hI+*+{7WMUI+v)L4o=jUg+Z#W#T1v{NiP1d9Nv9wq$6m6f+C)e$E z``U5AV35soSP%q7dv|wNuFvQ5wd1a@uh|60<8eiMG#bhEe!u_6G2w6+{C+>1iO1{f zD~3WL`Psa^y_Ng!@9$O5uGwtH!C=64;;~w-@bU2xyj_iV7QvL^PlGpMV#Og(}rNI5u@{x!kzcwF^@Fr7|yy~A_^7mGy&mgjlw^?JJRA4WYs>ol89 zxVgDeT#H7dV6j->?d=Wb^Epf=6Bv)j(Cv1i(P%)Y(}7N>!(OJ<@Aq+UZ*Sud0O@p^ zy<1w6Bs@7e*%)iH*>F4_vj@Jqy4n~E09Y!O*xa;up5GXoOeWdgrAws}?(FP*3TiYO zF`Lb5ekL2V{_CM6Nl>j;p;oIwyWIv+6k#%%0LO7)wOT9-{U6PUmRCNO~sOke^Nn7{-k@P8N|L4DLm3>m7y00000NkvXXu0mjf?_F>8 literal 0 HcmV?d00001 diff --git a/shepherd/static/Perk_3.png b/shepherd/static/Perk_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6a71a25d07547e3ad137545ff6cc76841ea31a GIT binary patch literal 868 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 S7`_rk48YMAeYVEhpYlI&b92@J literal 0 HcmV?d00001 diff --git a/shepherd/static/Twisted.xcf b/shepherd/static/Twisted.xcf new file mode 100644 index 00000000..840493ef --- /dev/null +++ b/shepherd/static/Twisted.xcf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95ab0f18d9f98a996ec48db0ec7ea95d3dc744d15aad888001a77aa51d549e49 +size 26136 diff --git a/shepherd/static/Untitled.pdn b/shepherd/static/Untitled.pdn new file mode 100644 index 0000000000000000000000000000000000000000..d4273413fba0c082eb838311f7b18ffaff820c3c GIT binary patch literal 79395 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ÿua7}Evi*C%s@;C zM0W_&!u2}C+_*q{_6E} DB_f!r;u!xhogmvo|Ph{`d-%4iOT$qZ()ZMYEwQ4?h@ zV6%=r()6aDnajf+wOlD9$#K#k0;O0C9xVw@u7^h`YeY+REdf7=72VPvb zjQ69=BQSIYdwA%(m4V%A5_v&O;~e0Gm-?J4*=ET-fbr)WJYr z_gqp@K}#fY-JY$%P}E53*i8jQCaQL@OpxAHiu?muVG|T$XT)6@CE}xErPa!+JNVpk!4|f-45L5EN!d z9S6Pk8U=?Ki||1mki=i+1m32lQIGdNSZ_E6D&_neH11A(cmX1vrAGozlRo1pw}CaA zG>@QiDo$Jfc7T;^kVw3rb^3-~5f!Zu$nIPik~&p%I>lNx(E?MRtui5%mOgSO;mS9Q zf?Af|j_frELD{^DnAylw(3bUQw=fm3{xiJWhUJvPLJ1<^i=3R1nJY8Iq zqOerFbt6Ieelme@?X*8XjNAl?wa&n#L8U>&W1_!wuMs4L-n`GWR=z3l!zGS6_iY_yG`6@18b=!yn&o z{=sL@!QZoIzX(2$@5kp|zX~*#bt*4Cf9;L5e?NcfPw#u>h)p-vad-4^4XMUj`kYRd#&Y-L74ly!`r3 z_m`e_!oU3b9{3lZ*z*2sfc4etX@5$+27d43 zb!gxXJ~rRSuXKQ4+jumuL;cy0L;c*hKqX)PyibM-ru55&`ks&T=Znt=P+ok&qxr%| z^J^c?7d@I^_h=Xo>a=aUO#?av3zXg8z7zp(c8cJ z(>xD))3dElJoZ72pZDfFoY$xEz{m4Vu(sDCJucSL}s6Z7`=uXr<}55P`fU+?H3=9*Kfa^n)Fl6op(GmA9&+;m0-J9e9qhJa7o^Ay`AE+ zUtT<+0vPM*^M`(a`>zyB=lSzr^~G;q{3rf;TJ8rfKEB{DlK>~5^#;~nP~iOe^Iv@F zhk^Y3f4KjN$ev{Hhd%V|oeyY_&+}J6^Te>f1sptoFy(`m-m>Js_0jVxXdcV{@&`ck zZti-mlk0SOr7s&`Fugv9XTSLTFM~Ne<^je$d;Z|!C(vK>ID4@3r-1(2N6&+`pFlI< z;B!o1fhBD@rmwK4_7i|V`ewin?tcQzKW=}BflmP}JbE4?;R&z^4&L=T`@G^lX8Z}b zKlo<2525h{S9#q1kRG1`SAFz6B*_!p9XNQ&O55`r82G+71AGXXCxFJ|wuiL&6oBTV z=OKBX09xSS^W6!Us%i3yaqY{jj86~K{u2}aGjE3fkWo+Yod=W$KYt2*_tEnZTu<;1 z;NabFVEC=L_|tC&{g7@?p#2AchnV{m(7~hUA@ZI;hv49ao1U6i%1d_r#C-qrHvxU= zA*+6w@(ql9l5a0P1kR_EP!I9&P9Pq^4+w4X7ofh@dNTOmnWS0TwrK*oUp#;QkYUfX z$IF1v^LIS><=KN99-m(!R`v4-cR#TI{K3o*l)izG=U)TPp8CEP9DGvWgTtQs9t`zK zeGe{q>U%K7C-prD{;BUl-=Ea?Al9e82W@^*--Fto`X0pf*1pdMssLPk`aFN{mwm^> z>v~-JnZLAotma?-?qB%RKi$0JyB`;S<$iwh*{reHa=Er@zVe1>1rJjg#A z{_al$;osr%{KdcKJwIqX(;i018wSd6eA5j63IoDy?|R#x_`k?+`uXGAf0O%1zvox- z=O6x#_MiWY{!J#zXHfO&$l)!h0!GR^e&$V7_4hve_kR81OW*Oo{2xE?_x|Enf791~ zhxNA4{m{3)efhRmKKBp)pa1=j|3&u8zV+n~v&f%(?^k`>J74-;|Iruy)O+Rs;+2=* z^X>j`dF8vm>f3+k=YRf}z2`r8^}R3siLd%g@A>xM<$l#SeeVzb$am^LF@DE4{o{Y~ z{Xa7OVHo?aOP2rWKmM-nn}6dbNt_dQU3qG^|$}wANvE?Cru&Ky-2djEb^hpY`>of%`$OOIYo?$2 zg}>8%*q$66=vQW8iVDj zn8k7535(tSc{Mc+jl;KgH6YPcQB%Cc^fEV16f6mwf8~!mGM)SlKa{Nth|>%wS;O+A z-AvLTS}hYcbv!WWrL=`QSMlR+(e`HfJ;x^z(;n1x_ds<(CznhWDObND)83VvZ7&*5 z*<>g!s}!dWVypaXAEIk=)ewmfvS?#6Y*vz)`Fd5|9p{WPWBJy`d^Us+s(g5pzSbKv zQ?2>KFXo$@eilOpc!)-$zEw?DO2o?FEssPG8viLb$-M*LWd>yJP-0C?pn%r1DyX?z zPpHg_EVgdXFT^}m{LYZs#Z$uWBJjl)aOO)Ey{?}rGZtO6iV+||?Wn;VPQ)~8)5aXqzsx-#cYsIcH&323NPqcQ z&B1YxN5#Q|lE|rUAbF1i4o4a;zUn2V{T;Xd6KUtfrsNj@T1QPMo4KYt7MH+ETCVsc zlU4#RzHYm=AN75|1Iwzi24~`@WLu7!Keidx6T_=y13=}i^6mJW&NM4{Qu{bw<4#h& zxt`F2L#2+5FZvq!b5&P32QPmjA~unQ&SXxbY1XrhViY~%_oq!bVluVyUF~vXCW;0A z*k}g$JX21*KB~neKMG-1**#d&s%4fn&DWG&IfySxO@mctx@~yH>PW zHD>x4k_pH3Nt8p%qH5Igl0S_5clvD}#V*Y!`3GO6j;BD>a8 zU_)w?!3!mrAzyu7SY?A~QphwnP_WA|bl0~SqO%^Y(}&Y+Gw zkej74NtS-uII1?4q6si60VrOLcJaACM)duYA*tW4#pu-&fA$rw-=dnYfg zcq=xj z(Qr@2PnKMu$*EA*S71$#=MmB*jJSvg%Fc9SjYTVd_*v|55E5or=LNQd|UMn)Sp|Z zQm9frUg+r~14S~D?C_B14h+}tJ;=0foKR3z0?TvfaQTFxZd$P`)+E!BGTyn($Vg8a z!WAwgcj&Z&cWzVa_4H18u{5QGy+Q{827kSuF+ga}R9Lnd#jYF2a$OJMt$h1IK3j?T zX72~uF0&I~vUZ}C4?I@l$Qzm@qQQ`0-PKIyBhs0WKiQ%?*XBd6vPJr4ZXVXK$lg9D zhHQF`p;4^2gU7O|+gv9CMeje|&@7-w(tW+ACdsoZJ<7Ov9e52CI?R>Y*KWaSu%|e= z9rg)=n?RCm$TN&nqwn%DrPD-q(yShQzE~x56OpAgBX+sw{lVQzBALoCM9WHHmh!nZ zZjnO)<#~R^i0yUC2wJ?bj9V$#?i;Lj+?ohn4LXrW-V)kI&n9Lo^hqrhgm7ICA~n5Z z*JZOWM2#LK{`8?&t*!Ir0o_@$OqY$7A~RFBv6~Dtjxks3aI%ZRvZRRej8Ly>7n3pk;gCtFkP$08DD$4)QwRxUqNM2dnT@ zjbW9m*xK3}8tLy3y56y{e?H-#zxX}G+sbKWQWc*aI6`*Tng1jsHwUs9_^b3{c)z}d zX(mW%0?T_{z6%KiEK&uL$Od45?aRC$Z4j+`K4!HvWs)|`Y6Ecx(fv?WEZ2P7-K`W z?T*Qovg=>g*9MO=Z(wmP%|nz9A0CggvUk>QtxOdzvJ9B#3`vHwzhFC{q#;!cW$1dA z%_n=i_L}FnD1+t>vr(c0YWYxx&JSyAMJkzod()<2)ca?z8eB4xymviTd%8mX0asgT zHV(iFw?0C0Xx%USx?*paO{V=Vo zWR>W}CHqZNX^>?m8-y>-yv7PT(VW#Iw~^QcI1hL=xZSv4x~mm5YqL zE$u+k%=$_8qU8f7xrn-oA+{Tx39GCp?8xhyWQmrXWC5$? zx(`W&$U1^!tVoQh+lgVJRLHufmezbB;5d6a4UQT}BG~Cy`Dw1z23nA2SP|qsSo#Y8 z3V%@30P|gs5hwY>d-1YmD9iDOgIKxiS~bLOJx`g3r{NO0+TcadL7oEYpsF z)RR_JO$JQPV-9#0-uq*&_rixeg<{2%FQa_;$q^qgH@2JN*O3oJ9f3YK*zeKYyB?C= z>Ba0r{bUC%9y~J!&J;Nirs`x%8W_t)RTi8r&R~VVDJ1lq%}HbxQfQMTcHQDUcD3Ev z{*7^E{>E6h?$b-XDs>q#b-=XHsZB?g*ID#Y?=oD~iXE!%!Q%63Y{?4fOMYBX9r%?# zW<+GE6}7%Y3u>+2E2+o?paw;crRgc)G6w+t&{e=Djl_?Y@fa2P<*HV(3X~%YOG@a8 zT#0=%;8SszVN}-d7f18J{DpNju~=8Kt(J$b1Jr$q?L=XrtXwcdaGwLEgVS zTY1*DFVPwoK?5} zNpPOSt1-opX}_gV{KrNKfkgoN+q>q`?yCcymdL69J@6>AulcSs`wq9vLm0_ zHEj~LkhW6LBp>6)jkyen@q?qWk5I{Tr*G2>XhC$i#?0$iF$-#)h7(8GQ7=oD=YZBd zMTrY_3nh60L0GlUbwE#jM1d>D)WQq6w9QX*T9h}v`PC;)hYmlh#9YAifzM~iWnS?8 zW8j6?3R=c%sBa+8cBH1OC8_w&Jw)ik?)f?q;;FSC7bAA%SL`RUNXbg!I*VXRa<`T~ zVY~Jt@B!Dxy^Y@>i48u`tKxRLDapW)wvG3f3DRraj~^JE#DxlC*aAQEzf->$EXqGJ zaI4RAP;d4b{)U1k#ukG&f0F$Et=~Y+GVZT?IPdHI<9II>cr0S3W)PJ!{pE+T%j%w( zssYaT#X5k-e}amM19$!RD1HR-Mf~BG)KWvpV~h>LD%yg<%(3L6S4$z(#jY)WFcl#E zF*9tU=A9pnwiNe%+L5<1Ev7YTON_&|XwkTs>Ty+UgrZkY-AF(J!lr2UrrbDjzzVOZ z9QWto)q9-yG3JC*Dx(j_b83Bg=uTi+i(>;dD$dQ529^J4LxJy$chIb;t40 zs<-rIDa!kVL(7NM&9lv(z4HVY0~;P0G3mr68^ZFcq)5Esi1DiYg+zXO?->vxGVep? zv$0gg#4c#IWwW`Xvg+Rv1Z2J~k=J7jT%~dmE5L^;&UBIJBM@5KHv}xAZ<1Fe;a?7}ZurRF3L~W$*e&?eV0OioEsChp%oYMSdTx z5lKa$!}GSB#_*2(2#(j@2I~O1Bok1?8t3gS1?ef69p>xQa@(@5RAKsiF4hbs$j)eD z@0+)8MXDy}8|^QK2K5|^v1wTe>2}RZ5nssRwAO;Mp7_sdfwW>Tdo2Pff37u!b zIIUhAT{iU={k2`^R0iM7Z&POYs)8R#vAtxCPe_2%L)182@^sTBs4<~y0E-H|ZZXPd zLpvA1Q5kX+7IvcantUfkd&cAiJwBY)v`o42MXulhX;i1Y7R_VyERolJ)cmHEPnru8 z$A`Gh+@w@X9WeMl`P$v2R8t&t-1j(*wTp*Ob5I&zX*J;Q29C2a1aW%4FWRE0v!sYg zZ>B`|^|Rx%;Tukz`k5+NtLBUlP|*Mgxx#;$Z?Dw#gx?gu&UI3hNPbb#Nh4P6k5Dl+ zb{%RK+G+#>bg&e2Li9Z_VMDo}%o+1cKTY2Ms z)9SUfOvV>WRH&I^8Dq754#=fj&BCVzl0nsRjW!)i!@>P23 zv7_*e?kKjqDkm$7WN9y zD(WO8il%oNZ{?of(b$ZH^oYmPJUa@_6u2|s?U)x>LjhH8->w?TT;qBy1iYk84V@wj z*e3~7zmuwPDcMLmxq%zm*cK5rb)ZH8x6meop10rQvyov7D1b$eA%D3CMK;Pvs&g}` z_zd+WZ;P!D(Q%i+wC+zxiZbOO1>-G}zC4{sI_p)hyh#YbNj1xis@y6~he_6LF<%pWFd_ zb%m2A+oK)LFUH$*WriFl%V#E|hlGk5+-rB+X&I7Iv#vZ*HNF#v&(vgrPxd1<{~Rk7 z=RKE`Xv$yUO@?mcbg9fJq|u!`w?0ja_%got9N6>4{#b#L4R(FnJyGPM#&qvvz%oDN zjK32XhpJxOifb^4=`UJkjtEXBSPP&m?#Bek4m8mjY86G>x{kle3|MmOi&ranv$Y|t z{oPhqnRvmTovoeYq1aO9`%h*h=amMWYcc_VJ)39Remn3c$m*5Q9$8Y;4ke+Adxo$_ zob4l-ux;~~mg7+{@e>#zwDUK!YiYH zT(x+IOtB(L@|**Y1TAz&*Wv+^5;b;ZnYDcsH?PfpK2btG7mRVxy`s;IQgswtW@Dg8 zNaepv7=HrsB?-Xcl4O2HJGR7Ws@1i)4lOG?Dlqt?qIw0kg);h{-wpoo@FecdG~lN@ zjPT(tWT7ePi30P+M6?RS!qv6#x?0)3PNHB<6851Q}- zynD0BZrzOUCW7$kwc3Bna{y>)&ZYs6t%@$B?Wsc&H5;CZ1!*B?LE$;q#5lj+-(}$$ z(vH=5p(H#&X}P{raj0YZ~`c*%GA7#OF@l*8ZGyytt2`(uoLp0sYtkJunD<2KI zY3z`3qgd`KI2$Ihlv!z26hLQ^>z0@2VZ}pxzlXFFblPc|zTxqxPv%_+Ul+3*12a_; z@2=#O@{u^(%|ekQ`iWz6;kqOGi$JwAZ2IY6EmF_NiJ+jStM@ABDMobZ2S}R4b50)> z9`#Km70b*my@!O+!{d;Z7uyih5Fmo_yBF&f@}~$>o5|q0oVxc;3ZRi1L!>RalqnWm z_C3!50u%sO{?Z~MFrRprB8hL0bZke+cD`0EeLYrT$bPXg7>t2uWVm(&M&Pt;m4qX! zM%l|@oxa)H>Dc98dQwasWVXh{Fa=E#yt*_FF3rrLdzPVze){&%pQ*Mi#XQWR3O}KD zVL|@ih~Y4CkHoA3ion0hKq8>EwHbx=V+lZ?s!-h>vNA1kOJGzc0vk-2CUD`YI%Tps#20IGKe0ghtki`#urqypd@iEBU7r7Q^)*FW?U)&*#uWjYXH5W&PM^`y0Ly~+ z9ArzNFa010KZ>O}^QtlSGYj$Ol14>`uG0<>GPgofQ8`n7sIjBEu zJ2npD2})w67qKof+p!g@qjA%jIHY7qG6_YAR1&4LoZD7Bem)bjf(`W;P5Th`CEE1h zjhb=d&kh6f!?5W~ABLM`=+KYHOtUoCTumIPf36QBJfF|#$|Ip+&ydjDVy{9WqpcMj zl$;<==?{NCOsBK-w)Lt0JOvz)S>o-Qty=}-xdyhZsKH+>DW2E{3a%NsvDuZh=JFR+u|pq~uZrJQ zO2c)_-&MX#jp0tYGTMa4J+m^6Jc0}Q5aean^NK=l7(_g^$}uoA?*^wmCiwX{F|=Ar zXtdy~PauVP35r1}p}I@1;kF#PQDLnHK0-+ij$)lo|8sM@JZ0(^cZ>G9uH%BM^v3R5 z{h$&_xc=U$IOBqLw0BM`rbHHvza6WxOthDFy#I4WZ4{epe**_6;@9q?f8I&8iVPp% z6Br}-KWWj>#~M>D1-9Cdx}Qhk+kY9tv4%3bId#3AxzBcz42e>hS~e#xC;4)GjFl^- zb=g9>ex({WXTKjn+D*`CrOqdnOY#0M0!u`@u8+$1*p-fgQL(!$gNyQ2hHy%naZNF9_*xZA7Czo+euVXc?6;1W`WJ*rR88q0ib+EDU!X?Pc=ywXP za!mwsN)t@2N)2Qb=tVyIHt3ofQ3_uXi&I%wE=DN-`|jmO##j|y;nHV{F0wDT$ikwC zP-?!MSCGQ;aNF6Ow8h*h>;FO{7eFALvfUf zY-0)(Q68hBcIFl9?XoiXYv2%{*pR=$h}~rzhhh?5*ovl_(ab@EL+H@hLHNE&m?!Vf zyJkWd$W|8PPjB3FR&}3A=?N(mbUpRVVA7wEDznoruFHr;ZkyOgc^i!5*8o7SoIT67 ztdF24au#E>X1{=6A_Yfr?NNoT?&i2Ejz#I#31$Ux3+z9 z?02uWA}kYFm+XPFJB<6CG@x8z-@MZOk$}VO)fr4x`+6_;k;^n)dIO< zn(|zFlLa@H#t}ip>VJ+sZ97zZ>DMESYmGtvjKZ5F$o=634;4;k2#J2+IumYgQ{8D;kw`rcbml67f)F*5MFej|Ioy|)Jx@G;NfweFGJ6iFlPLve!H zsR0A{@qK;Sph%P8f=)v%@i^g$0?>0%78PrY(suD>?dQmAfHQNogb@H4A z-BCTSu+4N5`s877c^fYlhJ?DHp+7**-|+A}s7+vT!UYuo!B#m(!C6huE`a-im1n@8 zu*^0a7fY{ia7C+-Id3b`;gk{ir|87o)6qDR3HCaXu*6dD52#h(sFY~M=Uhzh1cC?m zheS*oMjH0SfJS|wiHWeFm4U;E=WM;%P1pD)v=Z7~E#W~P1tCOMx%2Jr1CV!k}imbF|N>P}>Ih$G22u^!Ala367bs8?{ z$#FfrljGO=h2++?kbS_Dl+g2Qalx)#ez9Rs=A?2C*cOzeaSoC8PKyX?>UzvT)4dDap42(5<3VQs>rF`*$HzNd~+r)*g z3bl&}MG_5!LYlO&p<(M-5h9rn&H1or$(@EIX1}nIyL|+q4h{TcaN$bef85?|QJ31z;=I4^!L;xIB1xC>&)%m zeYtFW*_{>5stQZL96rj zg4uF|OPo3n?(SK|xn-#RHlW#tnYY(`wh*Ye8FU-vdGoFvXuJI)ZWf+XWaIC~4yUDs z+2?G3Tj%l*spOdKz7`tiD6wSJ^@q6pdU@?YhjIE0@B zLa}q*J}sO+i-wNGsb18H%hk^?-QOI=%P`%;RgvFqMB#BK^al9C9dvV{j}z^3E;3AQ zMz4DNVUEYR;|G$i5~~tgvwJMlAn)F!8i#i??Y9G~CiSE$2~)CZglJWOnR+Ya?|gL^ zS_=sdgL`o{{xaN$qH$6eyn^k1a*&Ie<>XMqbmxLo z_T*v;Ti-{1GGo%+_ak)%PD{IKgtop@5q?Rs|L(=gIf@YK6$h&};SEUkZ%-V$quS*A zTWQu0g+{wCZE5@-93|KRqk2G#O(GXYrsJ6Z^&2oBKu|BsG_bFglN-Qw;7is-9H)_b%L^HYTjla1Ok&ScR9p48wxI=ce z+1ImgbDpthEu(e+ir--8Rak_00y1oMO%9O!748YW^{{ zPB>zwj4bT0hD(#|0`hxR)&L<<+h!OWnL{^Uf*GP8A2& zZBc5bVZw`fX%Qv^BFau5eXf@LsTcJ%To=g%TVAOd)8XCngtZkrCRCqn<}rnU1=@+~eO5U(U z)&Nf{v#M2>Q{025X4@hKBZhg z`yk)r!46TZ)_7Xdd@;Fk>@GOP#Y*9Ns{<;4+7Q$j_Wh6!e;q(T3vG!}ftaT6;f{Fe zr2r*zNI~PTLcjCi=!JSfU!aEjIiMjM%p2^7E#J)}lL(<{JmI;D# zwXkM@@NW2nGLGrA63f`O*$w~n)omyglS>({j^Q>Ahuo*_T~D!cJxR(iS(Y7k_9J>I z>P=@_CO1ys`mQAPRnbWIy|^EKrm(rg0ijSGpT+GO)?kzXH8CS;1K^@}DZ*JeHQ z7GBKTITG^oL)qTxIHu^gfc&*hdqq-{-?Hk|u|@%J_lsa`b&1B_Z#t3uo89Qkrhxda zB;pZbjjpNeq+RKkW7-AH9cfNcQBZpPb(Vi%JP;&J+>3s7aQCq5a#hbBWgy@8 zc%)h-!S_;|ZaO|B@}BE2E25_=69rNpu&r~|IZ1gtd?UxJM-s0;-*MZ!O&2l@P6*{jSMC&4XKCHiMeWwnxQs_BT4~?EXr=SR zekNTPAdD^=skS%Uvh`f6M&Gg{lzqc~w0FxB=TvtoKUFrKK=nlo3s`Kr4yl(2q?w?1 z8tw{R6&!`W_b;}~Wq=)P)}B>&k$5a{b^Wm(4vd1c#-)`Lu^1>srQTVflWZsgzG`Q4jgPVu`R|? zWpKFk%u4=m4)LuP_G|;eyRh-=e;ZtzqRYYYz>kjaQ02~kt8#LRXOp0Jkr3uK>EED- zotcmJa}n1-4urU=-o#NU4w3a+JOO&xGee{K_UNTOVHrlN_U#gFL;0XeC#37PTO&bA z$ANqaD``%NRR0^-F4r0vi%K~X%pE_Slb(GExB0mSAfV{){P`CM*(UD-=r)vFR|`GX ze^2LkXl)fb-|FfSk9C%UX{Z7H*ufQE2M7N6-j4Ncvx#j{j;`qlsDkU*ECJ95_F0L2 z$6EFMpZ*2VgRG$J>iWvib8?X12G?8M-F?EyXdZ6@IOWu76#8^n**{KW(Nz4afwnb? zxBdSB2)iJbh$wd7fkh&-v8m@}5Cg<3dOY1Y{eLp)kG4Pig!8PqzbuU&#Z8J5CAWA9 zyj_FZ%%8vZGL#Up4EcL40za2+StrPpYK;;1DF@ZOJW}H}9X`tmIQL$P4Zg|D*bB&03cQ4OZhcvIeT6I?KI@t^wRgrgALG{HYX~hgLuuBSaj?MPrWd;mret|>J zg*D3-%Zpt%j1u%*?zvG9=)A7~lTE~b3okv<;yG;y$4{bYq9}6@x>xvajOT4X{A!Tf z;%r5k!}ga@MWT8KHxiH7v`+d}8-G+R(fu(`)7gaed!Ed@$*(<$d_w?T|yFbeD&*_+$+X4uA-5Y9AC4NIa@oI znWr&F%IIbH(?ZYR6x8euF0fD?7T@ztz`Hb{=x#JJEc3GQy&^m={x0ryDGR<5$OomSuK@l9%U3lC8`uA89$aJb~@7lWszti4+1%3)_+I@u4KovvIM;l2& z^m2#$(=h#~!$Yp)NBak=9EbKx- zpM&Iev?UX!d-}UVdy4tJu^H@*5u#yb5*MSGp@YRlAwe6OoDp9*V$qK4nU zZ6g1{=tsq@g1cACpZVSd*RNU<_OM`Vs2Xc@52aOlK+)zhgxDq2JxIxo!#G!frg}+R zkv5Q`@vF52V|iFG=2a`_M%q!ydo>LAMSY`>=0Di*@%bNL<1n?!s~vevsI`E~{>HQ@ z;4B>CL*N*T*pVm^cjql?oNnqz=qMh-@UYlTDV;3ogGTV=l4lCnl^XM6Xq+I9UV_jC zLiQg|KKEl(p9{oprvrVs#DN*Bic;aCIo*LCIEMEw_HD={5ZMZ6B?gcXWEf#HxwQs^Tb<#YiZ z+L(NVM2gS|K@RVjmQjzBMvJd!L9p5S`d zX|V~!4yU%S0hL)#FUhp5k0k?2M{c8uQu0?IH?X|8Key;#(w0#A&^T#H90%N!{kkTw z2G}A53$(qsSJ}b}*M}n>z($O9?*4>h#Jkb^sPNj+WRkPpN{&+X<(BNEdl6^$6w}R4 zn5pSB+-ImK|Nh}seX-8wCrJFh;=Jv-pWpI(A)l<{4txLO3zBoExc2?dv7ifDmjeBz zl{WeE9|#cw2SW}3Ns%unuf+&68inV{*-&R#$uz*p zJ_QWQ!Lj++OqOX4Akys~uhdy*1%y5>K8@%1AAk~8U!&PS!@eQI2j#k)1iJ z;qK=x@=O;f*>DojeN-!MMPlx+#Do#UUr+pca~iH(4gxP}(JM$is^k}7#v`wYYV z2H6jqmE5beW$&}OY+nuVy5l}wRs#6>bMd4?)UzrWa(VA=@dzGN83NYXTFD}0$7j0L%*Vj4#M0yYQ?a)2@WUcuJxp1DO8aq zHgsXn;IgJX5dB-`fqfcMtxxO_kTfvJwX$=KJQz}Gt4S`|b?rnF*{^q&lMe^q99YOj zUWkpZ=)vQSuc|w08w?Jl4y|c|9%H)weSmj1KW%(ae353u?Tb;kYFP2D&D&DeFXJdi z`SKLLy$U2G!v>IpdpL_++k1os!21{w&11*g%jDC|hg^ZjE44qgX6Q>iPH%{O_fJHh zNdDgMv_5IdTjTn1O55S5riuO=_|4$D*0cPQ28MTr5mu+v198Y@J^0N?%K%b~Yc|4C z&`8BxTG_~q9D%-?``Uk~dO#t>5a@*ORcs)rQfek7JkPqdb_-^PTTZlH0S0sYyxU0O zR4;#!(y=@q3`brr3U`vs1xDs=Fb1vp1MR?`Ry$S6s{(^|LvvS zqc?QK`nPX0YEIr(?V@gDB4yA_>dev9(jOFNZ_p$&qeIv~|E-kwldhqYY*AJ9#aLwe zyW$khx2zhCSR4?tA>pyRydbwNckJ5%8?t@Ft_VE#g*73tN`v^Kk`gLUe%89OHzBQ} zB^%-_Uz#nc&+A;k5Rpm8B*8jPkGfWVwVy|{&plvaeHEL^EC#DH^~V8q=e09Qevmf)|$I7#wNb{2-H z6VaLLMnA*#r99rGg|RyCzl~AZ@R3s~PoUUfd3D!y;CRzZ&eY+JC@Qj69h;f`3Xz2& z*h#ekiKZ9wc}F^&MV?860qkB*dpIlo0SePW;OUoA(dW428W-&7G4RyAz`|cgE3nP? z&w2{g=5cjxI)P|Ixg36Y>t}n?)5{D@g5+>Nz~SY%vY)>TvxTVR(B;g0yp-X925{Lg z4fBMzUu<`9@#)(a3l>4V8V6_b%^yc0@ ztc^3a^d5Z$3mo?>2<0tkpKg7zf3IOc?bM@bJMO84{+37Yo$^lv%6LIYVcnObaZpbk zTfMYHbvhq-^R@4EP45F3D-{6>*M8mVitU(@A$J4LmV$8|ni|{1Ni6ZeH@v3OCyZ|U zSNh@rnvLJqL&3&4W_LImaG`{(O(?365}h;|AUmb?1ysZc+Ry5jF*dzXgX+%xrS*CN_g+Hq4!8emGPlxFc zPs`6&5?ntvT6SMX!@fwWl=6uGI@18`KA9%^Aj}PU6IQM4-BiHrKjyeqihhE}e6Hlo ze&RIJJ>xWcroA;|`SRAO8qUY7QLe|tK-&BDes`I6&o_?*%|x5cM=W%OYGg#iPjP)T zX=(B18{t;ihrk3(qap@C)~HYIi)ea1z_ai}*}{I#b4JrE%(~yxM%fbTtW> zmFR`>Mx0X>igJajy0p_@8OII&B>$c#XPUQXp0>W;ra6#FA3kz#t>I2N#fNy*JEETZA8S^2Y%}maGXTr5g%J+aDm49(5LVpxJqDFCtO*Vfv zo*0<6^i*F05EU8_=;>(_3fu-P=e$6zH~f-xqb#ESrnYHR?Z1axjY2=h_5Gl8wD3Hs zGdkFRl#kqQh^b&Y_%d7H9+YrQFCB$R&}wJ;nboS_iGj-MUGNkkvtlR332b(0g#TA&KBWnlASAijpxhJ zY`U53g>9dzgYN`2Ra~L)hzQX8fQnNs?RcP6x3m%T>K+BbJOMlS6wtF78B#Jro)Ds+ zOw#3$`FP3Cek07H1^yO|6Ilg9qO$=#S*g3UcSpEq!6_M0a(q2<9)ptg(|a%Q_ytxW z)2O#~3{E2-rG)yT=@8e=A3zd{0)lF~5y1yswAifu%4wA23w&|UyrWGE{#BW@|}5Y z#YBl8GN8E84(m-HSCTrUY>uJ+9_h83fgHZ;j$W_?sk_tCMbDQC6sg>W>khYTu^D0c zN3J@#^@D)3xvYu613l9zv;N((elRv}8ZXU=O#!f+8XM zF#aNq&bnLj*b@|19#I`7By zn56plWT5hEe*M}nKs|2ImlO#Nk@)quMkU^=m+GQDl0HE~kgxh5<%xEW$o>+!MOoD= z1QgiLpg12*oql;t`Ie(af*lh=D*flDp>u(e@T3r>Ff@5{p`_?z)zh zYj;Bd*5%;azUym~qPSXNU*U|7b{>uyjyQOr(04hW+aqLCM;l$oS76AqWd8C$0LXU3 zyn;4?yI_-Fm*Q*dh%6qLvCY)w^79ff%;^BcY1oRI}5RJ+WHshH%7CK zuwT9B=zi_fso@>KT65uq5_c=taeqmsWH~il=<_p=+5mHM6uYYaD?qbE65$*?(N{hg zy)&k%t)N0*4A<*sXe?LsKhYEmZ(rGbJ9FPkf2k z?nmiyw|w-$vHAX$sXjUw>l84oGOPkDzkJrCdOG1(e!XfM=G=Z{?;eg8UcO+jdTjA! zo6U-)`_gxXyGBK^VVDpX^t-W46Aj9FEvtI&A*fIrD~Z$Ny7E8l4zO=47zqOMxa`yW zr1rbh1$BXoe0?mL6r4A!aEY7OOQakfGlVQ#P2#3<>f|ESHkj^Cf37yEOU#odIDKw5 ztL?41dBKu6NB`!O?nk^x$*N7Ol29*^$ll)jPO&wCd;T;;M69AtW}vr@dE`iNB33)= zf#ilEjMmWdQur0iTI=s$bcokOCmjm%JxvkRv0l?Wr3kc1rLU>o!J`aQutj_vJW1Brc7)!mOgKoH#W5tQ4gf`8$ zw#TKaPp*`5#&I|EL!N9%K6dq+Uo3tyPeP>A#DX{Ga&q zuiyVuB@TiC`?qNSD?{{$6b+VS5| z{R5kS`Sedv{X1g$7j*vV@}Hpko9X?}!eL9kwfEopLg7Q?HC+l+-9ut*va3W1s^Vh| zs^O&JcIVgc``x;G|JF2f4fB1E>vnG_`@|_pHN)=_syK%*v)tql9S{*KrH%T<_4zf0 za`GpZcc+-sR!Xb{$;Y;_AJ!w^v-gU4#f+_FnIe>8PjwKgY&a@jsQM zV?7xb-^eTtdz~$YIK7TI67@LK82psCEnKMR>Jro;yts8`sRgn4+lmSd91Is}%2-rB zdg7gcZf_Z0Iy~}3G@&&bj)xJ)CAvWvPVW+QCR)b3)?aNzwNHg`(+Ay78@#yO@hmhW z0UTqy#M-djb|hV!un;UCp!EFj^kMT)Ff=pe-`_oE<*80TU{6Yn1c!1Eo#iA6{v~`Aov=re;~jM-+!Nxws2nmw;N(&O<0vP=f%+o%z90^VmmVI11bU6>Vv3~2 zb@d5WM{GlH5+daFz0pXXYo*W;->BxHsw}yXAxF^o;dN zVQ@h6v(gmH-0gtzGWCoZ3Jqro{N}rdZGomv$L?~=Q%o*~C+OFw^u-#p)&j;|Dj~9t%n(ht zrLX{ZbkmAk%LcyT=V{0ObYAn(!uPMBL7H#SJ)v@6*fQqWP$Mw5d$B=p=x#1bs7}YV zuNGA1f!{BG-;vcJ<3UFd7NB~9H~+L!U&fILSOa_z04yXsM|_P04()bUbK#czC&E-*%4pt{1(qm=in=T%-TgZzkJ$A*>%Q#z)0NEd1hb8sob+)arj4wIDe}1r6;2)^6 zcSw6~S{)9w?RfwDW(6{G+->lkKTpqJdkd*(?}-ejsAt zgw42p@jzwyG9ky%(vuUQGuAtiwMdhpgRZ^eDIRt;nSc@siW9n{i*SDwiR0!L08UHU zU!eS4_tciuA{Uj{2aEGn<$6kQU$9A5+vhDz2x{nR4Vf-g`7V?neQ*xx`hl_egx1W# z5~8VWQ-R*sQ^+5COj3GRfA~2k8;e+V>R~n(d3_278W=tS2kXcypQ)w*h2Lg$tOb{j zzP|2ni~I=NGIzW$2kC3gb#)G%SZk1@Pq2gx?GZr>u-Sfa1rPSA_d+r+R4oIBsSBhd zffp^$#g8L;e@!jYvUZo4F<2T#>%KHkf>OKqnOfNu_Nv>ow+V~m2-8G=n^>r_jg*ft zQs7EryFTSr!m$n08~QUdv#4^&$y#7EQ|-@6;&lJ@K?!amD5qXzxLdYpcbx!c_C#JG zcoeCbr6ax#b&GDQ8%f1$gLOL=w2rpD{ug`i9oFQsHICx;C`VDTQlyE9h&1Unpdzx7 zCL$femH<%@*brI>Br03!gpPETULznS5P}5=gc6DnI-3##1c(Ge2npnd^L_W;bAEr{ z``q$;?;j-Lomn$$&CHtBX4Ye|L%Md!%YD_eR~n$@$nlD2`!kwGQ;#6(UW%d#t(7{G z%LZHwR^DD#zg96~%RU^w6KmLzkH4~MqO94v*1;O(bh>J48=c#|&l_Iz@zb=S`u>{t zZscW%qy|9Aq;#ZlNb9Ttgj|wKy&1r@`@I61D)UC~%SC)uFwZlPa8VA)cLVp&wZ-LV zef9Y;P0CiQ>*Db?nyapvsYGQ5)HD^nZvrmjyx<+_OltKqNWzC{Vnr>Sc8=Iq8yNK~ zDO371do*4WPnNDZl{DwGEM=GRFzFx*@lQgJ>0(|5&FV(8AJJnrO8Sjw3lPbzt&#eE zF6>G|d!xI#$3&hwll4?2igs?)RAND(=>74Bi+2cty6A`*iB`)}Ar9ruWgid`J!Rb| z$Fz^tzL8$(HES|@t{TrN{oEKeHR>_rP0@D^p$<)L42`r@4-`;@L;Pa>`xCpTz>mCs z=yOSTXR^5ao|^cWhOb`;ruDj!ZseNWSnnm#L7 zTalW^E?jXcA;8hP0E9$=*${Dkv9STDwFpt54kSWXo(nS@Oyr@sF8OFdAraJ@kFb_i>*ib(<3K)T=GgCJ0r|stQ8* z1+m^^&c@=9tDZB7eFgK#X_ocR6AJjLH<%-e_6LaSC>pizqGgwdteu%gP4Y$@Q5Okc zvQ~YV1W9vk@l&H<|3`nf*xEls2({EDQIRIV$v!Hl@F!cSWAdDr@m`E>|A7UtshqiO zDau2-oO5OBPQyn}Nvd4up^9WX0zs^&h6xOs&yT zjXj2&KQDu>69`jz<400N;ghws!b0yKBaoU8-aAp~OHY3Co+Z^y#E~+0@-MB!G&|`P2q>1WM4j_Eeq^H-hMGR{Eb> zrauAidM=Ur@K2r$XlnS~CYLegE800Zm+6WWURfg7!R3Yxq(8Gh%P>dx8wQ;`eie5l z_k8`847o|VR?!|RJ4%SE{g@f6XBaX3(_ka!G9>+Z;*Z`ZKS#=z9S$a*&H=EigdTLTkAG!YtKFA z-ZYV$Wq2f^2z3S=yrrG*H!Z965(M+9CRpjUe@Q!0Oq$LGmt`0p467wRaq7xFD*Aut zbC)$9EP`u3<(rbT?AdDMTkDjv@zfDJvGG2$b5Yk*w;?nfH+(Rwhb^Lso3=nPO_W9m zFUqOZr%7yj*Y{(Ncde^ga1OfG*KCBP!0o6`rct7@A`Y2aEk_7Vg_W|7GZ>o}Ln2{= z2j2l3`MvqnV%j#v*UrY36|TuaZAP%(1W}+f`Mq2&`vD=mF#@ECR#cv9la##{D66tc9!EW9ONnusA4gi+&gDR)JH-nlar=qP; zEGh8 zN{)&Z4i$cVzMCO4wVMSq>6-%JO|bUE@M*v^e{&W|)F1`?K@1O#q1ln7kq+yT+=RIk zVs6Qqn9l1mK=*3K>f5mf0!8StexCgPi9}7B(2*!ryHfCp^38f?Odw(dF%>bLx270O zY;l^I+0+j~yba)^$3QziA>#vL8+_Z^luNIn?pjxDNGqXbW(oyZH9>}~=G};fYWW~? zE1?;s3rz8KedT1o; zZHcy%ui+DfJ{i2MB{b*E zpYLn(l+|ehEr+4^4!)IojL7v0r+YA|Z-v!Sav7ayBXV*Rn%{m&s33&n>o0BAA z5nxqxHcWh?S~qOG!9M;vSk{=6mPx|#>39Z--PMjyTm;K|mH5`L9EYZNZo%KS{*0K& zTRofhh7;mLiKhFDr z^&=hX@K}-M5;yLJW}#ul!v2wv}^vuh}>0OK*Vewo-C@W6;R9n*JLa zuS;PAJ0b%|9t>%l)##UKi5tnD^?N=402iOANk7Xpj#Jio!Fz8}eqXC>>}kWqTsNz% zi|7DyslDqjR^QZ1SJ=#yP$E;!B?@?S?C6fJXrE%2c9V@kV$ju9%2>s~xvzuPSd^oE zf@qGkMqO<=<_*}+#T;M$Vw!#+{ z#4CD~?(4Y$9X!-b!8Mzh<30*;SFB4L?$f5__Q^pF?sjrVr5q901=?Z8w6bmuG)k%vAXLNJN83WhDP#FTBO%pSDW48A zl)3v{WDNUwLcI{kHAq4(J{$SXc1gHXZ&Yb{qelC(;-4~TDTQUTpL-zQmdHoF{7&&k zj#$JWBsg=6R>$7EHzUtq!7P{o47AV@Gv@}*`Qsepbq~}ThH+3%enX9NsW5|=XYgF? zz0JD!)K`ag&;RPgSjyNheeckSu=8ylRIawSBGw1FIMo*Je|b^W6E%HS0CY}nfNjkH zHr03Lp1dlDsO!YYU6SALywY2DO1+7DZS3CT@mw40s9#+ZZ*w|#r_U)%vKwcwU0i`f<;A|{I ze`8r#`JY$aF3e#FZin-Bx_^%gnZ=?mhsZ_^=AyF^%$sq{J~hj+%xUzdYyCDYqQAcq zDr8yLJ^B;za9i1r?CIcKpPwz;^w>gE*>B2UbndxK9Oi+KOezhlIi)bbT8fenaBawX zo>*SLt?#Ub`r;S2EHLT}@6`K%B!LWrfxq$m$bsYNtu<%^3;)*UE%O4xoiK+E zm8q6gg_@7&GBuLUs#ic#R_kvOA4`uRa>ovG%=#wEa8gM3VgSseUz#(32#MBoqqJRs46 z(+Thz(kGtsH)QUOC>QN!k!Pd?AnEe;E1bZfMl}gnFG8~xBA>fnD^|7@>Z03z67#W^ zch6GR7{$RDVFAbzcIJ~OkX)mxFv+JB!g0~rjU^2aN6^n&ixk$NtG_f04Bn0^2U+aT&!auyWDLD@wqJ3)-|B>)P4kY1NyPO0@^Ylg;!P+WT|gnjKkj0 zf$!FrO#q({NdO}(fAV@!hMy1vu4r=QzcWVFC+_eF_{c48Q~#R$t(3G_9p2|N^JdZ} zjYajc;xDch{5czj?QHl>Z1L*0=|(EvCeUa8SX?;CBQ7kX#WCGtICBrGhH~0+a{Xd1 z*bunJR~g*sB)|JwL}9@2tqAv;Y8fJ0PGPOU;){@>uVquAQNb=v`y-}ctXvoICCqmV zGm%avcx|b~J%%*Bfcl9)H6KNoTxLDCJa)#Kxi?DfOAB`v zJirDjJj+SB?rPh=O|u;b|2aj_0kf zyGg!?j#YbS|2Zj1$k8M{!AtE$t(CxaE4K`x>-WwZzDek~>;-)P{k!wMGcWdx_1hQG zIq-`KYWwHtE`9+d7d`5N9ykb2jo5^Eg27WqY3BZa_rM z4qn3$u6oFBC@F|3ybame?*eU^yhH^ZG**P@2{v_Q<3)SBlC^`Cm-AB-16z*MqwmC#d<#2T`scDr z9Pf+lM$;j+=W+|lpZFGEhm~TD*V{tx)WoJPac#0fZH_3V7|3E`V?A<_5~|(Uv8JV+ zv8(f=2*;L~ttVH`)(5~aKv+YIot*V5KR5Nkg);iyf)?s*+d`YcLQZIFKz9XRG_JH9 zTgyA!N`#(Eu$~&Mq&;BU)01rI>xgYEx0@ynhnsElE@1bX&w>pj?9m|77kWUvzi(p9RK>|* zm?1VcbMjBzGlWKRei&Eb%K4H9ARXw_yce1K1?`MfziRamMB{TTDG~9$)I(kHK%b6V ztk142o&3{wtgi@niic;Ug7L)8ypSq0>2HT4Z@qk30p8XLS$CWDtXLi*T!t5)4XI*8 zIC%GSWi7VLhRhm=ghFaomSX0h{$S^yTqFb?jX4y(UD(;orujZ@;NU8wU2svrf3qvDGR1HB?<<_ulx}mSYwK-*wbkW+VAB5Zay#v%{n+H^nXM-!A8a!m z9X!ukUy?H}ha$hrQ*V|)d6hzYTHlnBq>oW=Ud@);pnd>1=BLW=ifXgg+lZ{qg9zN- z8RN4v;7$6b#4K|_o9Ni!W#f2)=Wgoi)!VIjX9q>4p5nTu_>`bWID46vlRYH?*?J&@ z)D8FFSNFKw;MK)2fDFP(K!+M?55Kk8t$PxK6~UX(-e45@Fk@9m`gcog&9}NZiYTG? z3EHfr=hyI7&}kQu?)iXfVrZ7LqILOOZlMn&=;aH94%cMXk_+?|gQnoJ-A!*y1381k z%*E*(abZSLU_7_n-FhQmNvH0Y4oi%!ZTFDb&L)ooDgFruxDpBv38;CgM9D}zvV=Sr zFkp4XGi^4T!X6EzRhL1((Dly*@Nk0XZi_48&$I4j zGRnoG~J9&HXmbHQC$d$JB8yo0rq63K=CK|ycZzesN*WI>s#Toma1eBvNc)V<1i z1z2S~ld1kC@a0h_Ue1cF-bGKTO4MH>yM@4kcp zw?K9m+E@=VOFiWD=D`MGBX0u}ESSza?b^K01db#I^ZEQrCH!$(2CU}hW5x=w=5@!! zu3)Qx!1f9b`Y>?kz3!jdRY1o)=-l*2wK<)0E>JotQ=MsrvV!QX%%CEeW9YQZXU z?nYkNHF|9CSO!6M>j?TQ!g0k{_#lT2v&>^IuixeZn& z*7)HKNN2c%m4AC%INblR^Hw``Zj4^I0+{S2yTz}K0iFkm-B7|808$6!k6hM=$Qr+1 zR{lLQ)PIyii@!i)rV-v6{AB4wD3P|YgmlyJ-Ol?2fZhh8OTIr)IIm^>jIqn&6a97? z6zx(%%Q>36egg*jzv_b&=B99}HIxfEnu}0k+k@l~y%ZW+z^~=uWy%gJjqr$@TW66? zm3gAifqeu&2hus3IQ3U_Q=()#*Gsp$gGH|bJmmXi~?X3+ULAO3C#LMKjH<>~$Ycok@ z-4Tya);UxYOQo@fx+lx6B@d3A<%69%lAIM>$c&LX;f3}q+Cy8kjNIIo=jV!u zS9g}K5qs+Eu8|JD>+FYcLm6JFQ|j2DGP3~W)86*V8WjFC(`0S9EdfTlR%>V9w~5p1 z&&WG;;?C}`YeCkBR)6@wXvhNmyW&OJ=5v&0vcm2um?X*JFyYY=^Ln)_#d*FunSuy! z7Eop(-pgmmcz8DTcW@DU#V&kHxvIJ{_lu2tF*AvvC#z2kqQ@Zt1?$Nz>+uh{C47w! zhw6e{T;ZE+sezlT*{XN1(K#bN>n`7(CH!;MiDW z+zShcJtHe-Ia(C1|7c0H2`^F;Y33=;cqG5A?FL?aJTL_KQ(k28UWdI1E`{obz zw`GzqA7|zcD@)uqUD`@xoGIkz3XUIstmu4askz+BNlPqEe4=mX*ElzWtKU{GUK58W z7A%N=R_YEbCYDOn`pJ`<;g=)qFFnF>k$SaE3%}ndJFQs2#d)TAS9$cn*7VV`cp{jR z#z={U7+d_Vt`jojExb+UbAQXeKc*zc6@YlMjfoGax|gY&3^_5&ya)O7jz4T@vFzKP zcTab!bkiftKy3<|%-OMuDA}+v_YBBFd-t~>){+0jUe!g4~7oh(`!p(fN4+Y4Jp zx}X5gjAqwhSs`P+f`Sdq*6W9qI|HDFiNm!t1~%e8T%kbGhPZmgZYiv(b?maLWUeW9 zdOwE12Xu8v!bzs?W~=Wj%!oAsrScg7zRo-LiI1SOQv0drM1G%3V>RFGCM;Pw$O@(( zD(u0!!toaogvf3rcMYu(AUsIc3-a*@f+-oqBrA@7NJ?Q(>DAp2GTULEO_YC=? zf5rmCdKTvO@ull)dgA`HFzwBBl2#^HclfZ&J`?e}pxn~r1YxjJ$ABY|O=IJ(GioBN zG$ejM`$+;}uwOHfjOZ>_sp%;&Fwch&tl4>6(%$C=;uNJV9So-!GZA}3IDXlFwE5S$tH zm~Nv1OQ<+z6$WDJAIOqaiTp2z7*k){Uo+ve29j5F=8EjhYVC;fD7xw9B@x^GChiP) z)m0RJE?5tY&7iGsl^o4PvZQjsXHz`+qpLij+4u7}J*i|MstBVrDmK99`Q=yZ+1(Jw z<#6!S=_*DNcPomIXz@+6Oi$!$A3O;obnSN6MEy+RpLh2gf`@)+OsXf(73oRT{X|dC zmP1t+c=sV3`BW!%o*N1^4%XTg$$t`-AZFe7W_pe8<8XMyXU9yToI)+|yoZ6I_3>5C z)!iM>PKVpbV!hG}tR*<~1Hi1Nf&FOK9C}z(46temPC0QXZnS$9Xl_PfwW4%d;VVKSH9}Ab2MY zxtFlHsNYm}JWpEcU-BxKHkgo+ELtO5W0u4nz#4XyD2(2P3G93KQu`Gl78(y)8vR*P zf2{I7LaXK(Fis0~bJ-f3HTjuwly5$pK0s`}ob0_Q2HFNdMr z3aUZYBA$?nY=l;0_dSaM)V2B*ZYA{$8qj_S#IbB|nkx!43%U~Vgci-3@KoQ=2NFBd z2n*4KiB|JkI}OgC;i*fTX$-yD%0Rs%baQJ6`)HpI4_UD~o;CP4 zc|DhgZRPJ3_la#=W8#|Az=MT1)&9GlGafu>boR!;@vPL7TDmjU(}Z1V#;KVbQ)+wK z$%tub{$h>3e3qXrfD^ra*CH@a@o-{iTb#Sp2F2T!?=D2J3OB;YvoTL*jbA#P-A1nX zwTv*@1DH{u+|_-Yv#^tnIJb9dilptG<>r$Y!Ov8qX2*3bESVVE|CtUyM7SAg45Mi&@V!CkDPJ8!Vsw^RQ5X3qElYcYtM( zOJg_hCDEYjmdzIR)~li1w(i_%*|lU=HHo;l4sZQ5$Ah`X^&MUnU3DzSMt2*j1!Ajl zMaMW+{_Pgdt8HW_FvsLy?S1{aGHK;&3YDl5wuv}beVusW6T`~{PcC2Actx0;pzb+w z$7$76*)naaC;ysIrTc8DL&Rran-_?7-`@dCb?#ezZ{GY1yC`25$g*26(88IrpZ2jmX z?EbB}iz&BKx?LW1dn`FBlAc5gXPOvwrues~pXO72zas7u==S{1veNs8<*2Mt%&1)lsP^s|E264*c(s~0{D?x|6eTY>m5Yr9*i))rhlLhRiz-bv($=k)Yla$-R z@R`I+hI`gdlR;${(Oa6ommFXuIeXj{VhJ_ZPf>NJenELid+T?hwt52|Oj5WcxJzHP zGOo!m#}X*Ed2NBx1P|EXVZ&d>8Q648VoN{*j&G#MO1*tnKOnIxgIo+cHa7jhv->16 z$gw0stn#zx!cjcUnc>1bJy{CL^Tp#2&7b4_W23*ThQ`2&(lf@(amD5_~mfmooc<_!$+S zfh1{b>mgl3;)&nduI15of)vO&S!9Q?0N#MAagE2a0J0=M*xfUNU+ z1224FyWxn9t1S;350BM#P~O)Nz%{=kBRxJo?Y03{+Im}V%VB3r@<;Z~#4~MQxZ+$t z!~Yu+YsuDb=dW<-IMQF?W5?1}=6V_Ff+QssesdES70-06&{mKpEblYiab z?b~C8zQQ2|d-G^D;kOJ;KW^S8H=I8@vFZMP!<_V(84=y~TO)DPHQKT2$wfC#$K!T! zx%=xQEAI*8Qe^bxK5=f%-{LLx8+8{m#OaKjFU20#1Z3!~Y(0F7OUd!b`0_i;@$kF% zJ??o~o+N*4W`mG>BT;BVuSD_fxVNA#66Xk0_$fgW$&$-Eoo@U~FRuT%5Q!PLTBp}B zVc*E#nx&GbL(PhCumi`(13Cumt4RXcn2Y+gN(mz397f!?kPo! z=aGufvt;BsLxn3FlkhD#ylD{lZv+UUYL)G4ebXXXmq?(O#l=-u$ISUAr~M^5i;!xi4bPwHa@? zpFCwy(j?!}f3As<#{ZWufSvy;V)DO#wyvJgj#cGGW^xJeU9s(2jz>PnK>0|MdxhBs zCShs0;S1n*A=i(RrSd%fr+B2O0;)S0d9OS2sLHK>0(R3uT)$(ay@D;+jVsXb@Vxz7 z`F8`V5$AsX4gRBEe0YozplCs7$Zq}8{{`h%KCku|Y}gJeUL->PFF1eY!jp&?nS&F; zavK}#-@g!}t{wnC=h}Uuy)`YNtt-Hr~|1b_GTs;lcKM7_8!Mba0( zd3G3hBx2X~x}9lfL?r7;Q9K%OH)a$bn!plnb+dq`iD|;LWWs}-8wn%8BNuZWfl(OM ztp&Bg(jD3&R`_}Z5GYH=WNT2JSxtImHugEyas=pf!}c1PF$# z`hG+7{Ur}X7&n%fC+Xx|Y48@>KF3f`b0+M*&LfxI@?soBJfkZ3yH&Ll0bJH@$LAem@d3DL>HW#;*^%TbH(L&b}#omUT5#tJb#-XWg& zQ%__zg4~*@GeDsAC;{v=0c$eyG__n?<$`=%CEt~FZni!=6GLL2k24&&c~VwUa=_*= zosp)r8zx6l<^=sw!xap99{n|E?I&*xI|LQVXU;#--Jqwp<}$!$(e-IQi8P!_ulMqb zGS{+yw`VJ2^R;#mz?7sy_3*Uy)1k(Y%EF+|&10}&`IEKvCvuXvx$y4FZVPpIK{pwC z(Hl@fytHJ#(|8hWL!G8?Uu^?J<0%V`JuDz>G(YrcLO9GTcOT1VeXd`>y<|GaYneI{ z&hIR@(co!rQJqfG%-==ZA~JZ}#$v;?xTW2nM1xI56$SB&v}e)asR`y=%bw7JA3xJ{ zK44s^vot3ZVroUX`xcV7N0&>oYuoqrR6F+XpTyH8^9Ac}c4W1UmBLZE(orV{l&421 z-pryHS`GUewfi4lM-l6fYcLvRH8^3ZHp>V!PEr6VPuuGl;D6DBMGsS60K}{H+PC7# zy7JVm&*Xb$eq2Vw6U+{M_i^+eVjGOr4bdOzzyi7q^l2CLU<|(W0FLps1qCIE$_c_; zaymtIS!`n{hnL95^UJj-F$QLO=>=cf>)=*qbLsk=W~R>f+1rNUmOf;mb9`H(KZ<8j z*ija-wA*C3W_qn&&%%3?c}ADKbrq?-9*^tK-wt)T$y8rr2k?C53}Va6oo}@#8}mG! z_@Ux*v**uM1zyuQ7yI}pu4OZ_%D@7TZK#h0)g%9sgS2bU=`5+#wqT0Z>Wzf^Ct<_` z$8m3w+wG}MZ5A6&NL~4d^};xE&xH)BN3edLR|`b|D`V(W{j_wRikA)HicTJR^66;W ztLe-|akPnIiggiEG`nNGJz1^l!SQ+V06eDYV|A{46TWv=>d8EVy&=z+v!SNm!E}r) zj{1_kU!2X`y_#Gbj+>!bMT0}^%_lF-N~qos3p;RJc2nZH3xDBiZQ6qWLtD7J`C}{7 zUQCKKd1KiyBLQM_bfeW27V*JNxG!_0ip)9lyqa+dabA`_{qB< zFjivDwFMfHL66nDri91UbyB|AhEXHHLdZDf6vbhFwrmWha5& z+syBv6nwb!+&&p`ZJTs1OP*M?avR}NYSMmVIq+(_li31ncUc^HCPg`*p6IE-SIa-O zkc?{c?cJZy{3~=hnsol<>{unOiX)<%Nwq**a0#l%NFo9+AvM=bz$W+CtDCeI*F*(0 zCqyepCC73AmlygL!kCUn9$Fe<@p7-jmu)SN&t%ns@;5^&k}&{BKm1815Ps{oIceo~ zkpIv~K&f+XhfY1#q;FJBzV!VKunLS@YyyTGo`O+SUV^B8IsN4IQ9=q<6qG^XQ%1h)Px;&0ntdIGEE;;uG=zDM#QwA;6ho<~NOmH(C`c*yz|_7A6)+-{yT-}0=KB4j6;6J3?jOG~a0`3Sw=dEuMGLep?2z99%s$P0*w}p< zDis42jx$xXbgP~!FZLZY!0}Vs>6oFJ%(EhhJ@#vBoq=@(B5DfO?~8yCWaNUJP}*W8 zyKu~iATz=pyf8RS*>rx41 zvfc0)4>P&reaG_psJR=qsO6=2?dYe8^*<@x3%fe9p#5bG-Js@CfD>ZMmV@*`}_vTtn7 z3eZb=UU`|qEAIKOwX+-r@5-e$+z+?>7+7?0U>ASRY=PjsFUy@>|4%%3mk)T&cJFZ) z+>xV$hsz88=d|O09NYW%AOCTLk4vxrA=STA=Rdyx2dTKmrvD+;e~{u~|F$3hF@`4%X+`vj!c%t ze@HL;JJ#@WVN%%z$v0gWj9!*nxT(b)e-R~Q-qiT8@XIOxuctaCyCeq;qszX1xOVH4 zmD)p4NLV$nl7$2U*g>o&Z@>E{6=kb!A+x^@7VGUD@c{B{Tz&*$7A$DArFrD2|Nr_k z7@h5;k$GdvHs)|xh84l3Dpw%sSBM}%0`i?5Pbg+=lZ1pvbgHndN3I8!c%VuK*XJs$2+QxdWI@~D5+rJoqqqs(m!f4&#^i`E>jL=t& zI~Kmu*6tD$DvZ#_KeC;&-J8ua9RPnmjS*7-_xR8%s?u7yF%|^)KY2a?Uzjt5(GP)1 zkq{*Bb5rV)I}`|4Tns?+-jYQb3rpg9t7|p4Tc$;7dlc&&cKzL~34fYq$?GMp&6+9{^`1Rzh@l%b0YM6Wx6B}@tA&kh}uIJ`og4y|4Q zH%G~gh+kQm5R*48%m=g97mvNV`aykWllEsgXjYSp0DVV4F?q_pxbK7hsSPjRtP2!6 zipXY=&-!=ASY4{SZ`)(C1hOe#&Uj(<1Cn>9S6`f`?3m-oh5`X!SZAEmJ|`1E#r0$s z>KEyj^!(*jBa%p^Si50VEBY=3yi#*l@WLRXdQ==l)gKj3{d_YH)4q`}>2D&n-N3|I zX}UP3^qS`rxMdJ`FbIo%-Y1+iG`ea z$i^j#W3Tqq{dY$3K|z|!wz7PSvraCFqx#{}OyKCNhxT?dbJS)7Xt%3mFn8< z=bp~ihhn@LYvs|VHL=Z0&7tk>X_&+|-Cav@O~09cGFnSUL)gz?XLx%?k{4A0toIu6 zK9**1C%+2FlygY%{wCTbow>FqzRft{3Bo$-do{-S6pX4hfZQM&pArFo_Zi!DQ zdEk2<9hy(mzKbVCrZCclru(5bu`>p76YI_@Q>ObaG(EJnk9jVuO?DgN^+=p|3ig}~ zOfVDIb(H^XP1_rCJKbxY!;N`CBsRO7V7vtw*gU;NV74C6Vfbt?ikboOc(SlQw`N1w ziXss9ZvwAL;BzZ_zHukj^Sj03h$ppkr&zcJ$+AmVqr2??)IpN5`bx*4G zChYB}!$tmrMUxANzUtVku(;Ql*}45&ho38G-)|$7j(QlkAhO*Z&3kBh=pz0opFDy} zqf9lA{bkQPsmb+co^=_DNQ!QH8L^+M=S%6HCVb=raZlMXsp;VeFP{#nR#No*Z8fsV zR(O7`eM3~cv2}-ZFg4f&8$}e`#ZDgL=@%FgNqU0oThT*4D33>N`jOeg_FK4en~MlF z!CBM8<5_m0bGym_wU(e6U?m}uYtU}FF*Yv+5@RK^{lZ<9rl2;p;-V7D(IgPy{9LM> zSmc=mzXflQ(hUx$w-wIWjZ;T&@QtH+aNS?SCi!BZ`MG*BgKN>j-FgDOZ*}#cGd+d= z9EF13fQ8MJAvD$Dhty%&j(wvdhTMr-np--BE*GqVA9!isdw3;y*KU(F)5bco)#pX4 zk4Ep+c%!9*2U19`c~3ujPoc}3@KG1G*Ij!2x@!yW$c!}+$9Lij}0l9^p#G;(KPDDlcW7--3!$g;8Aay7qxSk^&TnDY|R zeyo@&O)H=oyk(d;kMZ@A`oFWVbHap?-3MM$?a5q<=v<+cAs)eflkz;g(2s-RgUMG~ z;MPk`^6~U-F_nt%jIRM%`AL~!*>kB|%!vaLMe+@TR6SU$!FJcb|8Eys>bil{_Y~WtKI`H`aRiB^qGcMTHta z14pPgJ>{VP#U9G-VJK<{yk$BKBhIS4B5G(IZi-dHO4{w1nYbuPQ^mGw!*xgh5cBVw zPZ|GFx9!=~3n;nRPw}qR^k`5tgdo9}7WJ+lPRn2Cl~Y|n2Dpsu>YePiTgv#(x~4D4 zk`TmC1sFbyxEqG3R=D0(3!SwIHDC!YtyIkMN*;0pTa2(Hso$_4r?d;lbm#v*jV#oL zx}y0PMFKkaFWp2TvV^tSO~i$L<>f!?1Er-D1&Gy1XPKlUGljDtSLgKG8pg9SzK`ikQ8^etU((z2q|kfc$qxY^ybIhuP7? zWX?|OIOTUljB2*iLjkyN`ly$vW0&&!^`;(2ZOe-7_MweV3Gq?~jD~7Jci2MNcW+SF z<%Zy!LOfrjpa^~n2cWxlr*7Q`w?DC;z}A2QLOa(I7AG4yb@H_5H<#dwfZV9g)ZlYe z$c4yoRbzRF@64Z1*vhGUg{RLW()Jw>Kfx!r8}Sh7C%Jcu7p*`4aCM$=jHH`=$vieC-Yy!iee zLR}uP5^ZW_s;bF^0y7A~pbtEwk&i+kGfHDY3Y}x40kOZ;=d^3T~EjLqh?7X2~bc!OYn}838QkX#rK6=V^3x zDyeEIXr*2*d;?qS`U}W*JOBfN^#m(VFz?ayXZW66DG(d&(Tg@11oSK5dRkRVeTg3F zu?Bj6&n?26+Mk^C+1b7qU>;BEt0SNAS-M9UOW>b7B3)HV&T}3f>wM1wx zAVHe@S$PSt@TKGZehI9Axtwr9k>$E&?iH9AM~ro;R4_xv6MQjqU)yIT*-d#x>ADPM zVJyUealrHHsv+BI7=6ZMb_!nI*A2)QA9%fY{0_ED%s!O=oYSIW+652na>)X}NZe>) zyP)6~AB+Hs}^iWsG(oo+@20dSY+tP&H7D)b;nmw()A{co!Quoo41=Lo5;4-2wNt1*Rvp4iQH`O~z zi`7#coziSR*t&%HPz%lL{28qamz$HnJqkl{mskJ_etC{b)^NunsoKs$wNcfqkho@f zOAZ8K+4WF-JY_s}LXH*j+pCMFaNvd{&5WjhsklxL%K!biO5clEj6DD7q+?qo(_Vk- zmV*%Nk<5~~wIf^e^#tf0K4^8)ujc z?+42msIGO5AJ^6%{iFYZE~M^om)z4{bei#0_S<-j!DC?l4?pilzupsX3pBmeF+b|b z1el(h(pYl_(V*s2trcu53f0E3uoZ-ly#(dKNYuDC34*cyG{ccP@~(g!XTaVcOYQW! zS0(OYyURMkv+|UdeJW0Oz3*1#G2t|rne_Wqx}kv#m%&%stD-MY==QI!(( zwt)P_**Bg#`QvuJ>(X4U!tUpMxY9%Y{tLogTdR9Nw&T{TN_jyW06AE^EtAo?kDoq| z24_TSgccT%6Ak3`*$?&V+kLvHwRp~S4>699o_eZGI+Pa-z z;7`j#l`C}ZInE!*4=7;@zT>-}IXn(^jhgVWZ(sd!Jy>=I{ujbYLNb+9_niXB=$thp zv2;S&{=OaVr5*W$YG7<##m3wPQRxj(J@Y8Fr1{G}W%Ea|i39balYLS|=>N zQSi7wPcC;9?|tFp{515Clil4}i|F$DZ8y{9G|FRcuQjy5o-hS8jT5~kgD25?zZ2>X zi1w7J2_rjWvnN^gH9A=SV1D_zwIB9&N=ScVxQ{bG)kL8~!Zn@&@%Mh2!^%I#qho{I zGVbejOHw6WV%EIOf|#@jIRNjej z%Xz>Mg8(P+@Z@=2LO45Fa$D}-zi`Oi$>l-PhtF?dGixp9wXJO{{qv?>_Z(~ltnFtr zM!%rqT{lp~PW>qQ8P@`Wn&ub-bef|29tPwlZ}nTB$URS?vi+^FFe|<-+=tMnm!dM7 zJKMj#y85wU@hQ|qJi{N2v;GcsXwRTN5Zl*Ya!n7f>X1n2+D@%{2>WxsVZv5ZMcpmd zbSXR9blr}^2X45mdfmV?yy}v-CbEa|=ABJH(A;C$nQx1$48;0%v^E*;vQBcZv8Wac zF`GsCxvUHR+~L@zGG3VY*APK<4-<*#O z@_sL4&0-^R;YJNRf65=^>c$zA7z1Z)RBkM4ZG^uPJWZhIyg$Gm6Od zan*&Kj}r_BjVp*fcv7Ano11;=)b_eEjP2d#EzcmV#ddijxW}+uQoM?cALeX1Mlh4K z$Q9D-!Z6-Sk8=4vM0GBq;s1;+`$x*Zo42OoY-~h%e__N;S0B91#P{@-MSYA5R{ngg zX!tQ-@spM7qo)73Vtd}mD#;^e-q7Ci-c#Ef(rKPgAN*k@`~Jn*j}JLLtF2(vU3~9( zu%|9qpT8h8LUG$E=PWn^Ts=3tG4Pcg4F2PO>4^5m(~PUQ&VwzxsyJD5Vqi*`UDro@ z39_0C|Cv@>4s**b{9-{@;=%EQ0iWzE4%L&gb}B98g~xt0kBBkg*QV<0DN;v+O!o3*LQNiwlNk-EaJ-6>n#2-QyPupZJGAXnz9sF(12mT#5~FxCSGs0sWF zkM*vmUTwe0BXl7Pk%+7ZJ!4q9-wa2SHNC+iq(HTKx30 zVt}28%fpNv4|-dkum0U)Is==9wDa=hI=61-VU;s*v5FN~>R9vj$s?+tThzw1RsC=6 zeRoh(Ti17xt5`r(?p5icQWOLM0VyFUj{+i~sPta1fKqa)Ap|dq1ts(jQ4vvkRjC0f z2`v#Rp+_JPN=P6f2_c0q-nrk*bLX4)8UOj_edis|OeT};cFu3_efHXG{npx)+dz8l z-{7A=I?UvjF!b**8}yu{p7_p}b*~Bnc$xjPw)Lwq+ln53Lv-O+E-bGhTBm&6SwUXAZe-`r)v$0Wac7H& zLT^q3P10*6U=n*qn7qLX%5Tv(hvxZ)l&dbwa@j{eb`DkR&PeTX^zd|&7R!;*;d4pz zQj9TA#)D_iFY#%2-|YzhyRJ4ESHv&*1mmYs_Xi9j|FBW~H0u5*#Qp)*PowS+L-o_B z`@>NEH0u5*sQyQ!{o^gbH$VR5EBu$;@(-x^gz%qG{TNg~X=wi?PW*&_j4HmwBIx+< z+s;e(#V#G%eS_Q~Hx?{^u+M#u_$)faG{E<5Q;bzhm$6C`x47{bJy>}119bAgN$j;* zpC{Vzl`DXyOFR5q@cDX)?{ZaozCy z_-^SGV@4Rm40 zXmi2kYp^sAaZklH2mq>ZH@WlM5~sp$|KH!q+Q?tvlzw&Mieg9I~7AnP@JIB8x z__A!7Ueg=C6R-hgiSnYDxf`;o>yw$b8xX6v40TU$(Ng!de)~Or*o<;Od9D1Z{Vk0m z0)Ka6^ASOm0QRj2zt6S~;k!%BzT;MbcT5Lzlg`NTA5ymh5l5O9Q)Z*qG@ozpOe^~Y z#T)G7$6rRLj)E#GS!ILv{F5T13LXmcPnk0#$to|ZKQ80P)jKgH&VGE*8d0>(eXth~ z3v>*PuhnpLvp3mz z6y6fmx5qZTCDQuOKY=FMPicJ<467*sw-C&+V{6yll<+jSx=H=T0s%x-Dm|~1C(xET z#T14LMkME#5uGYoU%_E|Vt`mxk~i09q8#=|q$MEsx3Pikf!jN=+!*H=5wrlHRCo2h z4a;d+a|GlD;*W&ZxAWo2zWsH29h%?E>xz!PfdSeKqtMm0WtjErt($qym^iJLuOL+z zR#sE|3tkty9i$yJXg@fJhzeG0`K2~1 zQg4D=z*^=+cUo1?fDcaSoTd|%7bj1- z=*JrPgvw|Mg$02K`X*5wtpZF(;H|~*qx3ytRH;te&D|uLI*cJYEVa}NJ_H&PtAcX{ zwS*MbdE$mc2dc0{mZMgJPmDsS(AjmTPJJkVJqEJ7GX1J`A6Rep`I6u}5-XbFEUw^hML3`3?Hiv1xzK2&=#l%*=bu zOY-}xNK4cSE%N@b1@h8-SY`G9TP}@T2+4MLKZgak_8m?obp^Owwz>L%Fs8UL zzzZfhF+>Yq^KRhYu=4(}*`^zXkZw`KP@bXXwcI%AO~CMld)meMnJ&O2DF`!fntsvQ zKVZjA2nf)!$Q`&#EV30njhfN*4Tr_lc;+MZhi(zqvP?EFX;J&chqiqtB9})5V{D@h zX6~>}7GRaT*g{Q9f~=x~yHL%w=FOD{#hzBZ7WLeYgVvO?)Q~5JNv1tzqpKQ7$WB=Y>Ggab~ilI9|v7L+amOpS8(OgaT{ps z%ge3&SmAkPZ;lZ@NJe6Nkx|Jrf~E8L^h$l06_QFD*vCyjR0zHt|4`Tb$zXQP*k8rN zIuWh3GETsy%P{%QrMx6LcgzuwKi;Y^L@}o1xco|!vWVwtSUDIoP+`;d@^j2yx_rMq z|2wUV*Dl@zt5S(NZTBsZ@1@AO-7 z!YjXE&HpM~uuPVIV=hgS%}bvW>ZuM#XLE=*lp|a|=S{PKXYRPrEG9uV-7P28_|JT8 z?a}b3rlcJyzun(Um#W7wcfw~t1yOmMxXUD2r{t*vJ=Mjj?7!1%)muZbBpz473WnkK z;NBMWKjy|MZwi_$WvZBhp=ZUb{4xOhDMF zZwO1KdA6=<_AJQOGggykIIQMucPTtwL$R#z?~GIJ_o+k?`i1T2bj}~wH_d) z6gJ6gzZ119N@LPs;C_mhF9-=!Xt2?rv&7)YQdYf^m4jkmQpbIY&p^y3vKxopapHP} z`zYOF!VBE;zNMakTQ^bpZ#u-klKLZ=QN=JXbWJ|so>~pa2Y2iK z)xv3WyjesB|1T$J@SZlf0e)y;oT60UvFW*k*1Ltu6IfTqGS`*aW}*yu8SRfgaeyl= zS`;)qJ;;Pzro>3e*pcS9B5lf?Xu!98u0ZTFj?}JqJv>00SIk?1@J~_21zzEN zcfu3t`dR?M`UMDo$G(1=BFC4|$b|1P3EQSg$N!cqfn1^7Aqj`Sm(ibEkRKN6e`-Pg z6IA~r(*Cgt`>6%_Pkr(asD5feei*8sT96-x>Zjf2hoSmuxA|eHeo8Dq4AuV>iRHJ> ze^=Cm*WFpjMr|Bkw*E!n(xs}GV^wYmoiiafehDpf>ncp#t=z3$?HSl9^P)Plv*M*v z*v;Dkb|;RiyfgDjxoht~T9&N^Be8%?==#i|Z!-scDd7}ID=hlx{>M#tC}Z~wvDwOO zXj9hu|Bo8=i;q11jkA~e^6^ONHE*E3^F&vS>-VOHGbk)(ilP_$$?B348+|V%ZSyI2 z=6lM!b8EDw9_)gc*~#)(anI9_c_-$n06md>4JltoYR=}wgfv8-ElZ8;;L`Z3~JcJN^F9FycK~i_DNZ0Zz8lxNlq&XB#SVoyWUh)?Jyxg}& z*GUl~$ctyshnADQ0<)KiGDji8CmDciN~F-Hp58&+pI5M6BD#09(;0&}K|t(K3`{v& z!OB6jEU)4&QHH&(g-=)3Wdg31S+6OkdX>l9on}P2VZEM5pC~qmFY!ZNwcW)ca5J88Tki@dB3-6a#>oCo$KE*D~0&H`qqxmuDCg_GW*|;uiUnAU#qWCL7;FMeV-^Dcnab z$}3nf>|qDkC*mkAqtPdbGD;Fqt1!kzmVvGrCZ&%Py?#IPb^)E!9&Ye>U6Xa~sOq9< zOcwuRr8d|g6)Ci~+8Yt+ zDzjPOI1G6iv1w(eqUb*w0e7dp^SQE2J2N)&RsjZM%@*k`uGG{~M(F455pbE`{ z4@RktaEy7M=;qe^K@eqWgg~5(yiTn{K%CS%R!+{SnsBO1oKCoE=f!opSTUI9oSV1P zS1{E0DMiVDxrzb^Xi#bWxFo_MKOi1g9bNi(!F&7+11hL|avy!^aqrQucdHS|_W8&@ ztV88}s&L<7m~fK+f|&SpFTN=SrIw4sdrfZhw--^z;X=ovAl@!c-B$i0VQ&y$v846Er! zVp{Sy)29i3+1c^gWE!`>gRucYFKRT4J8nbNhdh%q3Fr&hR(_9nUEv74OpL^s;#53$ zVb`h~WGm5MLEwKqCkAeycAI5^vLPVr%FL?P-=Ut!W6D9IqaEAdPWKCBFRO=5R_eGq z@tl*TE`WT%dnklpe#Tc0y4nFrq=<2Zum7tumlp*dB*ss6w{SdvL zZ54j<=#(vB>J0l^254{XL}K54U09HR1)J)cacp1YyN5z72GdUQ#`HzBq;!h3Y30__ zcI4~Ez-^kwoszp*BDPHi?+?X|jrSf4@k!i3J&=KM#5PRYzdM1xeFA!>Y|U{87Fwpu z67*T6d3Im7Iu>KEr{Y=?L5Sv@lV|y}0YO2j(VWVfI6LLVBkwM3Hk8~$@MrTvJlDG@ zsxUg=k#pGRoaMESvecf2E`#5fY2RI_gb%}hwSBYIQ4#q*S`OZWNICD@{CwjveXM?F z1ddjy#);kGL%*-}YUxH*!;oxmp-W-1#eii|V}Su77_&=PJCj*#Eq(gqHc%$%!`u72 z$4~Jqz5cz@nT^LdKU;!sq+>-2DB~h;>pjdBbV9Pr#p?DIIOy`h;Xx|#!f+;1jalq& z<7QKBBBXn>^_npr-%%8ubR9=Jx&>k;QsL?oes&sY`&tGgp z-a^OqLK2ut^(_uijET}qgE>)b)5PV1Bqj&)GH%CVd>$UglL=Fs-}XPd`2mUpvDGk$ zjdfj`>fJ21d+2f4U35YTH?*u`UIQ85C5tO^KNwZKml=ISVr5$GBy&ID2E0yfRiSuG zhACbu@T5h7vlXE60%X8gQq$={nPt%iD|;$4^>{{N867fdi6<2Plp=m0xRZA)Z2 zeVRb<*ZLbrCLAly==2gpqOGyuiT$VhwmMez87apIBH~CTN=c9Z6Hrq5wR)t}0{wWn z*HPF*e|pML^9<+Fg? zZVf1GGbU5UJVIncs3tv-KV}r1y^XQRoQ!xE$5FxXA*U6pvDNG`?!>9r$Q=OSUxb!F zRd#la8*YSDCTu!YVKmx2UXM}C0_?kFw;lM0==c?&P8etY>Us!v0?Z%SFv#>Bg6zV; zh0XSQm)l|zbE%|?h7{KhKWsT3=l55)pQO56YC@Z9-1?AM6`xr1!s%q;>7AJiyHl=k z+;wd}*}ZHcrD|j5BBt4K-ZZ9Vmb`k8KPb`OXWGmTF|rt5 zcvTwkCF3rESlSS=VB1co7RXL0a=1I{)zv85<`6xOXd+ zOWvi61=oa3hDY(z7hIgx4tVECoh99we_E$4u zoWW0thAu)L#1q;HZ>(uR*wTaOx6E%6_}bQ3!Zec2_ysMc}9!R#9(%< zLnVAU$9F8!6f5EC8Oyn5m;ud=Tn|Tr0PYZaoR$SURWiK$9OX|UVKB&kuQus{d*!CWyUe6ifv}aVJ z7CT`}>VpzmoW`~0(N3Q)pkxPR`63M7bs~=IvwXxgIWZ6S_ZpCh zan99;Rj8zCI;5Nb7DF++yEN&)(O2pH_(C^{5rBu3*5j=XZW6yBE*=1^B;@Nvh@im* z3G^i574L1`X4qn2sNyk}F9pT`Crz;ha80K-|K(UD1I8z%2B}t6OwDhgVCccaqwXx* zmIdmCeh&~*PPR166+c&YMh2$R#PIC#UtQ5UBN}BmO4F!#_4YJFvuuD}8`9BW`)*)I zTZAS~$%wOFy>%1<1;jcH{d3NW*6B+085dh?GIsA}WMwMQ5Yjha`lui?{9n2H{QZSWDy0dRIhk@^ zc6u%eM+nos6t-TQV#8$<>&dyjy3{(9B#kSvC_b+CbQorfbH>szZ?|Af`p$;}C;iSC zRioS^KAv{Saj~L6zU5~j^tW0dY8hQO$_+O@*D&(YPMT$9`)$>(tnQu8s7mF5hMU@| zp~7E}$4#(7Y9e6k`xYH#X=g;RN(>1BKm+x7C+0+AYAHb-+f&24t=6}Yg1&#Qt~hT| zz5AnC7IQ-xk9Q@hKOK;J&dAQJm>$5!JRc!U<{7TWu|MVGI%5=!a>YWb^@{D8;rns+ z7FW@Ut;l+?Xf9X%)uOJ2dms=)dmCWY;t?u8yGmczdx`?uE?+`sQW>cISe_GHS4EU; zxI>v>o)iS6{Ymr;rRET3W3=71BsBQ|QH&#%_kjg-J%ORfl<<`ElrP(>6I1Y+3KLR} zAQG>NS-E-N?6T{eCKT$gcsR;h!0ys0?(F6`^fUIyYoVVxTHH7CEl88s9HYa zlzgqe<$2m;j!XdqoLpV=!1bd+wJBOne-ymVQ-aZD)dHT3_eQr00^aSzBbaH)F&XM3 z;JW*P4}{;T5`8QTCAzp?h-nm^Xie%;v zzIajB_J#jaZoG_ZnB~n>-PZ}zc!iMsW)dy}>zR@&5z=yYWHyF!&YdnlUD$bU)}G-2`FOm4hEeRjwP&J>REpnpTN;Bl@y zwDzF+dvO6kS`q?kH~pAC8`Vq0lpP!0C;){8k+gQ%T`y`Z;%JN1_t)m+g^uxd-e2g) zjtcFtbNAfYQg3@a0w2ax$?SGXUCTZSs1va8%fE-5gzd9oIvk+d(;y0K&4yiz zNYEL_C~nKZnQU_Xl9)%O*p~h*cs^uA2FKu)t3ss5wM4+5*+s*<>IhItrH}kY3om~+ zqgKTDx;qVX?*ppz?mNe7iHuhU$^djCCGcJ=VxaB#s@Bvfgz-%N(=Z5(&nqx*03upr z817&*%=+;lk0aY6utoY(A08!(zFahMMkI1m+q^Mwy8FcMElEP5eiGYO=S+<)Vzluf zIYYyKPf`8iMkNtw&l4cP?MzCyOI?1Zu@&W29n$FpJSqm8X}094AHL6!;aZEGecaW$ z^P!?=93=%>9UJ#I^ig~jzMfuVe&nw9$*S8gYL{miQd=a$j;oWm-dE(t>um;d4PIL* zsGAn)*{P=c4t>du(DLvG*lDln+gf~9Y3(WhqtR)xz8?`G@?e2EMrtwBP}oPuBPn@k~_9FsK#;id%}rD6{T9hG zgSdy(z3L=~kTfa&B$XOIB4Ctn`nkEuGxa=$yp>Uq4S472zVkbz`xs&1LO=3Epjf%s z$^|_g&T+^&Ky1JKE7WL70TXO-WYI!O0^$s~cCtUw5WD&$Fc7^8Z&BdOr*_Y@8hdV1 zGl(wsoM2N@sDM)PwNTHNu_@WYH z0+42kM(8>iWZE`Mojs8O``kQOF1KjR@Q9J<_e;N^(Q;=9|F z^ahPYY}f<&y|gi8$}#U+z78!`>P+|2IU-s}!n>NN3oG|2 z<(y}886@&4BN{1 zwk1Ff9H1oT)81Xutx?&U`2?=TO>H#6~C!HtF%j^KZ5Q z-=r!y^Y6M`eBX?xlu(eTXKloFn*ZHCI7ih2O)d1XnD(&>2)7Jaf;CU zwb+o@kj}b`-;B)nyHhZbU-oiIkSmEd_ zC+^esW&S7S)A@|<8ao*sRL-YU_1#MK zpGPBrGfze5Q@75Bp|B&O8y2JzEYB>G=g7GU6GMH#fC-z8x8|$2R9X|Jhi_se9m}%gM}jS-a0Y5wcU$fU zHy?#~v@oSEN_eeZP*i>9=(%<&P4lesXYsv>$LZYGy3vEm^YNd~s+QLGyuK)Jnbm7} zmD?(`!b1(ISB56G9WEP|Y^g|Ssg}q5E+fW2uiB3r4C6?wI-&$QqMMC<^DSfIeN2k% z2mUE0$M>y>x^>eVQ~i;*m&2o!ECarmIHHh`jMB!y$At{kfOo*2Wd&<`9}9LGH7XJ$ zSBbjiV1cWhRjz&pt-&zdb1$gXS4kEw6uU?PWSrsnZm}rWzotBNP zV|+kbL#D%rXP6otvkRYIhN`yhT@E#$j~hFNA9Z-M)jWFI_5%Dc;3BEFtklj4f;D%p zF2%H;rOn4YhjM47@IbnK_J*Sm_dZ-_uIQ8I(K^iT<8mEMMx)&y{QU1kebwoFy{Ntm zU@@#|<4Gso$v*J08q|Es*K=CZ-qyFfyhL-pVoj7{(EJJ1EEpVcw)R78A$nbSwE3cb zhLqa|FWYXBx(g78^iNLpaObY_Jie>y|My.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} /*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/shepherd/static/icons copy.ai b/shepherd/static/icons copy.ai new file mode 100644 index 00000000..9f49830b --- /dev/null +++ b/shepherd/static/icons copy.ai @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eb2d496cece30a50bf6753f0af5718465a03351f93053430cd3814bb67a04ae +size 1687659 diff --git a/shepherd/static/jquery.min.js b/shepherd/static/jquery.min.js new file mode 100644 index 00000000..f6a6a99e --- /dev/null +++ b/shepherd/static/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="
",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0, +r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K); +if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + +
+
+
+
+
+
+
+

10

+
+
+

Blue 1

+
+
+
+

24

+
+
+

Blue 2

+
+
+ +
+ +
+

104

+
+ +
+
+
Blue is Twisted
+
Bar
+
Blue is Twisted
+
Bar
+
Blue is Twisted
+
+
+
+
+
+

Autonomous Period +

+

+
+

0:00

+
+
+
+
+
+
+

104

+
+
+
+
+

10

+
+
+

Blue 1

+
+
+
+

24

+
+
+

Blue 2

+
+
+
+
+
+
Blue is Twisted
+
Bar
+
Blue is Twisted
+
Bar
+
Blue is Twisted
+
+
+
+
+
OVERDRIVE
+
+
+
+
+
+ + + + +
+
+
+
+

30

+ + + Layer 1 + + + +
+
+
+
+

30

+ + + Layer 1 + + + +
+
+
+
+

30

+ + + Layer 1 + + + +
+
+
+
+

30

+ + + Layer 1 + + + +
+
+
+ + + + + + +
+
+
+
+ Blue is Twisted + +

x

+ +
+
+
+
+
+ Blue is Twisted + +

x

+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/shepherd/static/scoreboard.js b/shepherd/static/scoreboard.js new file mode 100644 index 00000000..3200f2c7 --- /dev/null +++ b/shepherd/static/scoreboard.js @@ -0,0 +1,472 @@ +var socket = io('http://192.168.128.129:5500'); // io('http://127.0.0.1:5500') +var overTimer = true; +var stageTimer = true; +var timerA = true; +var timerB = true; +var timerC = true; +var timerD = true; +var goldSpoiledNumber = 0; +var blueSpoiledNumber = 0; +var isBlueTwisted = false; +var isGoldTwisted = false; + +socket.on('connect', function(data) { + socket.emit('join', 'scoreboard'); + }); + +socket.on('teams', function(match_info) { + b1_name = JSON.parse(match_info).b1name + b1_num = JSON.parse(match_info).b1num + b2_name = JSON.parse(match_info).b2name + b2_num = JSON.parse(match_info).b2num + g1_name = JSON.parse(match_info).g1name + g1_num = JSON.parse(match_info).g1num + g2_name = JSON.parse(match_info).g2name + g2_num = JSON.parse(match_info).g2num + match_number = JSON.parse(match_info).match_number + nextMatch(b1_name, b1_num, b2_name, b2_num, g1_name, g1_num, g2_name, g2_num, match_number) +}) + +socket.on('stage_timer_start', function(secondsInStage) { + time = JSON.parse(secondsInStage).time + stageTimerStart(time) +}) + +socket.on('stage', function(stage_name) { + stage = JSON.parse(stage_name).stage + console.log("got stage header") + console.log(stage) + setStageName(stage) +}) + +socket.on('launch_button_timer_start', function(allianceButton) { + alliance = JSON.parse(allianceButton).alliance + button = JSON.parse(allianceButton).button + console.log("launch button timer start") + if (alliance == "blue"){ + if (button == 1) { + runTimer1(); + } else { + runTimer2(); + } + } else { + if (button == 1) { + runTimer3(); + } else { + runTimer4(); + } + } + }); + +socket.on("reset_timers", function() { + resetTimers(); +}) + +socket.on("overdrive_start", function(data) { + block = JSON.parse(data).size + overTimer = true; + startOverdrive(30, block); +}) + + + +socket.on("applied_effect", function(data) { + console.log('?') + alliance = JSON.parse(data).alliance + effect = JSON.parse(data).effect + if (alliance == "blue"){ + if (effect == "twist") { + blueTwist(); + } else { + var spoiledTimeBlue = 15 + setImageVisible('#blueSpoiled', true) + var spoiledIntervalB = setInterval(function() { + if (spoiledTimeBlue == 0) { + clearInterval(spoiledIntervalB) + setImageVisible('#blueSpoiled', false) + } + else { + spoiledTimeBlue -= 1 + setImageVisible('#blueSpoiled', true) + } + }, 1000) + } + } else { + if (effect == "twist") { + goldTwist(); + } else { + var spoiledTimeGold = 15 + setImageVisible('#goldSpoiled', true) + var spoiledIntervalG = setInterval(function() { + if (spoiledTimeGold == 0) { + clearInterval(spoiledIntervalG) + setImageVisible('#goldSpoiled', false) + } + else { + spoiledTimeGold -= 1 + setImageVisible('#goldSpoiled', true) + } + }, 1000) + } + } +}) + +socket.on("perks_selected", function(data) { + alliance = JSON.parse(data).alliance + perk1 = JSON.parse(data).perk_1 + perk2 = JSON.parse(data).perk_2 + perk3 = JSON.parse(data).perk_3 + + selectPerk(alliance, 1, perk1) + selectPerk(alliance, 2, perk2) + selectPerk(alliance, 3, perk3) +}) + +function selectPerk(alliance, perk_num, perk) { + id = '#' + alliance + "Perk" + perk_num.toString() + if (perk == "empty") { + $(id).attr('src', "/static/Perk_" + perk_num + ".png" ); + } else { + $(id).attr('src', "/static/PerkSelection/assets/DummyPerks/" + perk + ".png" ); + // $(id).attr('src', "{{url_for( 'static', filename='PerkSelection/assets/DummyPerks/" + perk + ".png' )}}" ); + } +} + +function setScore(alliance, score) { + $('#' + alliance + '-score').html(score); +} + +socket.on("score", function(scores) { + alliance = JSON.parse(scores).alliance; + score = JSON.parse(scores).score; + setScore(alliance, score) +}) + +function testScore(blueScore, goldScore) { + $('#blue-score').html(blueScore); + $('#gold-score').html(goldScore); +} + +function testing() { + resetTimers() +} + +function resetTimers(){ + overTimer = false; + stageTimer = false; + timerA = false; + timerB = false; + timerC = false; + timerD = false; +} + +SETUP = "setup" +PERK_SELCTION = "perk_selection" +AUTO_WAIT = "auto_wait" +AUTO = "auto" +WAIT = "wait" +TELEOP = "teleop" +END = "end" + +stage_names = {"setup": "Setup", "perk_selection": "Perk Selection", + "auto_wait": "Perk Selection", "auto": "Autonomous Period", "wait": "Autonomousse Period", + "teleop": "Teleop Period", "end": "Post-Match"} + +function setStageName(stage) { + $('#stage').html(stage_names[stage]) +} + +function nextMatch(b1_name, b1_num, b2_name, b2_num, g1_name, g1_num, g2_name, g2_num, match_number){ + //set the names of all the teams and the match number + $('#blue-1-name').html(b1_name) + $('#blue-1-num').html(b1_num) + $('#blue-2-name').html(b2_name) + $('#blue-2-num').html(b2_num) + $('#gold-1-name').html(g1_name) + $('#gold-1-num').html(g1_num) + $('#gold-2-name').html(g2_name) + $('#gold-2-num').html(g2_num) + + selectPerk("blue", 1, "empty") + selectPerk("blue", 2, "empty") + selectPerk("blue", 3, "empty") + selectPerk("gold", 1, "empty") + selectPerk("gold", 2, "empty") + selectPerk("gold", 3, "empty") + + setImageVisible('#blueTwist', false) + setImageVisible('#goldTwist', false) + + setScore("blue", 0) + setScore("gold", 0) +} + +function stageTimerStart(timeleft) { + // timerA = false; + // timerB = false; + // timerC = false; + // timerD = false; + stageTimer = true; + runStageTimer(timeleft); +} + +function runStageTimer(timeleft) { + if(timeleft >= 0){ + setTimeout(function() { + $('#stage-timer').html(Math.floor(timeleft/60) + ":"+ pad(timeleft%60)) + if(stageTimer) { + stageTimerStart(timeleft - 1); + } else { + stageTimerStart(0) + $('#stage-timer').html("0:00") + } + }, 1000); + } +} + +function pad(number) { + return (number < 10 ? '0' : '') + number +} + +function setImageVisible(id, visible) { + $(id).css("visibility", (visible ? 'visible' : 'hidden')); +} + +function progress(timeleft, timetotal, $element) { + var progressBarWidth = timeleft * $element.width() / timetotal; + if (timeleft == timetotal) { + $element.find('div').animate({ width: progressBarWidth }, 0, 'linear').html(Math.floor(timeleft/60) + ":"+ pad(timeleft%60)); + } else { + $element.find('div').animate({ width: progressBarWidth }, 1000, 'linear').html(Math.floor(timeleft/60) + ":"+ pad(timeleft%60)); + } + if (timeleft > 0) { + setTimeout(function() { + if(overTimer) { + progress(timeleft - 1, timetotal, $element); + } else { + progress(0, 0, $element) + } + }, 1000); + } else { + $element.find('div').animate({ width: 0 }, 1000, 'linear').html("") + $('#overdriveText').css('color', 'white'); + // $('#overdriveText').html("OVERDRIVE!!! " + block + " size!!!"); + } +}; + +function startOverdrive(time, block) { + overTimer = true; + if (block == "fun") { + $('#overdriveText').html("OVERDRIVE - Fun Size!!!"); + } + if (block == "full") { + $('#overdriveText').html("OVERDRIVE - Full Size!!!"); + } + if (block == "king") { + $('#overdriveText').html("OVERDRIVE - King Size!!!"); + } + $('#overdriveText').css('color', 'DarkGreen'); + progress(time, time, $('#progressBar')); +} + +var a = 0 + , pi = Math.PI + , t = 30 + +var counter = t; + +console.log($("textbox").text() + "x") +console.log(t) + +function draw() { + // a should depend on the amount of time left + a++; + a %= 360; + var r = ( a * pi / 180 ) + , x = Math.sin( r ) * 15000 + , y = Math.cos( r ) * - 15000 + , mid = ( a > 180 ) ? 1 : 0 + , anim = + 'M 0 0 v -15000 A 15000 15000 1 ' + + mid + ' 1 ' + + x + ' ' + + y + ' z'; + //[x,y].forEach(function( d ){ + // d = Math.round( d * 1e3 ) / 1e3; + //}); + $("#loader").attr( 'd', anim ); + console.log(counter); + + // time left should be calculated using a timer that runs separately + if (a % (360 / t) == 0){ + counter -= 1; + if (counter <= 9) { + $("#textbox").css("left = '85px';") + } + $("#textbox").html(counter); + } + if (a == 0){ + return; + } + setTimeout(draw, 20); // Redraw +}; + +function blueTwist() { + // $('#blueTwist').attr('src', '../static/Twisted.png'); + setImageVisible('#blueTwist', true) +} + +function goldTwist() { + // $('#goldTwist').attr('src', '../static/Twisted.png'); + setImageVisible('#goldTwist', true) +} + +function runTimer1() { + timerA = true; + console.log("timerA set to true") + console.log(timerA) + //setTimeout(timer1, 0) + launchButtonTimer('.timer1', '.circle_animation1', timerA); +} + + +function runTimer2() { + timerB = true; + launchButtonTimer('.timer2', '.circle_animation2', timerB); +} + +function runTimer3() { + timerC = true; + launchButtonTimer('.timer3', '.circle_animation3', timerC); +} + +function runTimer4() { + timerD = true; + launchButtonTimer('.timer4', '.circle_animation4', timerC); +} + +function launchButtonTimer(timerNum, circleNum, timerStatus) { + /* how long the timer will run (seconds) */ + + var time = 30; + var initialOffset = '440'; + var i = 1; + + /* Need initial run as interval hasn't yet occured... */ + $(timerNum).css('stroke-dashoffset', initialOffset-(1*(initialOffset/time))); + + var interval = setInterval(function() { + $(timerNum).text(time - i); + if (timerNum == '.timer1') { + timerStatus = timerA; + } else if (timerNum == '.timer2') { + timerStatus = timerB; + } else if (timerNum == '.timer3') { + timerStatus = timerC; + } else { + timerStatus = timerD; + } + if (i == time||!timerStatus) { + clearInterval(interval); + $(timerNum).text(0); + $(circleNum).css('stroke-dashoffset', '0') + return; + } + $(circleNum).css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time))); + i++; + }, 1000); + +} + +function timer1() { + /* how long the timer will run (seconds) */ + + var time = 30; + var initialOffset = '440'; + var i = 1; + + /* Need initial run as interval hasn't yet occured... */ + $('.circle_animation1').css('stroke-dashoffset', initialOffset-(1*(initialOffset/time))); + + var interval = setInterval(function() { + $('.timer1').text(time - i); + if (i == time||!timerA) { + clearInterval(interval); + $('.timer1').text(30); + $('.circle_animation1').css('stroke-dashoffset', '0') + return; + } + $('.circle_animation1').css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time))); + i++; + }, 1000); + +} + +function timer2() { + /* how long the timer will run (seconds) */ + var time = 30; + var initialOffset = '440'; + var i = 1; + + /* Need initial run as interval hasn't yet occured... */ + $('.circle_animation2').css('stroke-dashoffset', initialOffset-(1*(initialOffset/time))); + + var interval = setInterval(function() { + $('.timer2').text(time - i); + if (i == time || !timerB) { + clearInterval(interval); + $('.timer2').text(30); + $('.circle_animation2').css('stroke-dashoffset', '0') + return; + } + $('.circle_animation2').css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time))); + i++; + }, 1000); + +} + +function timer3() { + /* how long the timer will run (seconds) */ + var time = 30; + var initialOffset = '440'; + var i = 1; + + /* Need initial run as interval hasn't yet occured... */ + $('.circle_animation3').css('stroke-dashoffset', initialOffset-(1*(initialOffset/time))); + + var interval = setInterval(function() { + $('.timer3').text(time - i); + if (i == time||!timerC) { + clearInterval(interval); + $('.timer3').text(30); + $('.circle_animation3').css('stroke-dashoffset', '0') + return; + } + $('.circle_animation3').css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time))); + i++; + }, 1000); + +} + +function timer4() { + /* how long the timer will run (seconds) */ + var time = 30; + var initialOffset = '440'; + var i = 1; + + /* Need initial run as interval hasn't yet occured... */ + $('.circle_animation4').css('stroke-dashoffset', initialOffset-(1*(initialOffset/time))); + + var interval = setInterval(function() { + $('.timer4').text(time - i); + if (i == time || !timerD) { + clearInterval(interval); + $('.timer4').text(30); + $('.circle_animation4').css('stroke-dashoffset', '0') + return; + } + $('.circle_animation4').css('stroke-dashoffset', initialOffset-((i+1)*(initialOffset/time))); + i++; + }, 1000); + +} diff --git a/shepherd/static/tempName.js b/shepherd/static/tempName.js new file mode 100644 index 00000000..146553f6 --- /dev/null +++ b/shepherd/static/tempName.js @@ -0,0 +1,28 @@ +var socket = io('http://127.0.0.1:5000'); + +socket.on('connect', function(data) { + socket.emit('join', 'scoreboard'); + }); + +socket.on('launch_button_timer_start', function(allianceButton) { + alliance = JSON.parse(allianceButton).alliance + button = JSON.parse(allianceButton).button + if (alliance == "blue"){ + if (button == 1) { + timer1() + } else { + timer2() + } + } else { + if (button == 1) { + timer3() + } else { + timer4() + } + } + }); + +socket.on('stage_timer_start', function(secondsInStage) { + time = JSON.parse(secondsInStage.time) + startOverdrive(time) +}) \ No newline at end of file diff --git a/shepherd/templates/RFID_control.html b/shepherd/templates/RFID_control.html new file mode 100644 index 00000000..ea0c4631 --- /dev/null +++ b/shepherd/templates/RFID_control.html @@ -0,0 +1,161 @@ + + + + RFID Control + + + + + + + + + + + + + + + + + + + +
+
+

RFID Control

+
+ +
+
+

~

+
+
+

~

+
+
+

~

+
+
+
+
+

~

+
+
+

~

+
+
+

~

+
+
+ +
+ + +
+ +
+ + + + diff --git a/shepherd/templates/Scoreboard.html b/shepherd/templates/Scoreboard.html new file mode 100644 index 00000000..3e411d46 --- /dev/null +++ b/shepherd/templates/Scoreboard.html @@ -0,0 +1,257 @@ + + + + Scoreboard + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

10

+
+
+

Blue 1

+
+
+
+

24

+
+
+

Blue 2

+
+
+ +
+ +
+

0

+
+ +
+
+
Blue perk 1
+
Bar
+
Blue perk 2
+
Bar
+
Blue perk 3
+
+
+
+
+
+

Setup +

+

+
+

0:00

+
+
+
+
+
+
+

0

+
+
+
+
+

10

+
+
+

Blue 1

+
+
+
+

24

+
+
+

Blue 2

+
+
+
+
+
+
Gold perk 1
+
Bar
+
Gold perk 2
+
Bar
+
Gold perk 3
+
+
+
+
+
OVERDRIVE
+
+
+
+
+
+ + +
+
+
+
+

0

+ + + Layer 1 + + + +
+
+
+
+

0

+ + + Layer 1 + + + +
+
+
+
+

0

+ + + Layer 1 + + + +
+
+
+
+

0

+ + + Layer 1 + + + +
+
+
+ + +
+
+
+
+ + +
+

x

+

0

+
+
+
+
+
+ + +
+

x

+

0

+
+
+
+ + + diff --git a/shepherd/templates/perksUI.html b/shepherd/templates/perksUI.html new file mode 100644 index 00000000..b2a01090 --- /dev/null +++ b/shepherd/templates/perksUI.html @@ -0,0 +1,96 @@ + + + + + Perk UI + + + + + + + + + + + + +
+ + + +

Perk Selection

+
+ +
Master Robot Selection: +
+
    +
  • +
  • +
  • +
  • +
+
+
+ +
alliance selection: +
+
    +
  • gold
  • +
  • blue
  • +
+
+
+ +

  Perk 1

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+

 Perk 2

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+

 Perk 3

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + +
+ + + diff --git a/shepherd/templates/reset.html b/shepherd/templates/reset.html new file mode 100644 index 00000000..526dcc01 --- /dev/null +++ b/shepherd/templates/reset.html @@ -0,0 +1,10 @@ + + + + Waiting + + + + + + diff --git a/shepherd/templates/score_adjustment.html b/shepherd/templates/score_adjustment.html new file mode 100644 index 00000000..f049b896 --- /dev/null +++ b/shepherd/templates/score_adjustment.html @@ -0,0 +1,162 @@ + + + + Score Adjustment + + + + + + + + + + + + + + + + + + + + +
+
+

Score Adjustment

+
+ +
+
+

Blue Score

+

0

+
+
+

Gold Score

+

0

+
+
+ +
+
+
+ + + + +
+
+
+
+ + + + +
+
+
+ +
+ + +
+ +
+ + + + diff --git a/shepherd/templates/staff_gui.html b/shepherd/templates/staff_gui.html new file mode 100644 index 00000000..60596d13 --- /dev/null +++ b/shepherd/templates/staff_gui.html @@ -0,0 +1,381 @@ + + + + Staff UI + + + + + + + + + + + + + + + + + + + +
+

Match Creator

+
+ + + + + + + + +
+ +
+
+
+
+ +
+ + +
+
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+ + + diff --git a/shepherd/templates/stage_control.html b/shepherd/templates/stage_control.html new file mode 100644 index 00000000..8afb3c2c --- /dev/null +++ b/shepherd/templates/stage_control.html @@ -0,0 +1,384 @@ + + + + Stage Control + + + + + + + + + + + + + + + + + + + +
+

Stage Control

+
+ + + + + +
+ +
+ + + + + +
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+ +
+
+ + + diff --git a/shepherd/templates/submit.html b/shepherd/templates/submit.html new file mode 100644 index 00000000..42168c42 --- /dev/null +++ b/shepherd/templates/submit.html @@ -0,0 +1,15 @@ + + + + Code Submission + + + + + + + + +
Submit
+ + diff --git a/staff-bots/dpad_controls-gpio_auto-motorpath.py b/staff-bots/dpad_controls-gpio_auto-motorpath.py new file mode 100644 index 00000000..b4539120 --- /dev/null +++ b/staff-bots/dpad_controls-gpio_auto-motorpath.py @@ -0,0 +1,361 @@ +import time +import os +import sys +import json +import threading +from multiprocessing import Process +import pigpio #pylint: disable=import-error + + +sys.path.insert(0, '/home/pi/.local/lib/python2.7/site-packages/') + + +gpio = pigpio.pi() + +class setInterval: + def __init__(self, action, interval): + self.interval = interval + self.action = action + self.stopEvent = threading.Event() + thread = threading.Thread(target=self.__setInterval) + thread.start() + + def __setInterval(self): + nextTime = time.time() + self.interval + while not self.stopEvent.wait(nextTime-time.time()): + nextTime += self.interval + self.action() + + def cancel(self): + self.stopEvent.set() + + +class led: + def __init__(self, rgbPins): + self.rgb = rgbPins + def reset(self): + for color in self.rgb: + gpio.write(color, 1) + def strobe(self, speed): + flag = False + print("Strobe") + def action(self, flag): + print("Strobing, flag: ", flag) + setRgb([flag, flag, flag]) #pylint: disable=undefined-variable + flag = not flag + return setInterval(action(self, flag), 1 / speed) + def setRgb(self, vals): + for i in range(len(vals)): + if vals[i] % 1 == 0: + gpio.write(self.rgb[i], not vals[i]) + else: + gpio.set_PWM_dutycycle(self.rgb[i], 255 * (1 - vals[i])) + +strip = led([2, 3, 4]) +currentAnimation = None + +motor = { + "config": { + "drive": 0.5, + "lift": 1 + }, + "right": { + "name": "right", + "pins": [12, 16], + "value": 0 + }, + "left": { + "name": "left", + "pins": [21, 20], + "value": 0 + }, + "lift": { + "name": "lift", + "pins": [19, 26], + "value": 0 + } +} + + +auto = { + "file": "/home/pi/Autonomous/autonomous_motor-paths.json", + "recording": False, + "motor": {}, + "foot": 0.73469387748, + "rotation": 2.45 +} + + +startTime = 0 +switchID = "18851477588195929070" +switch0 = False +switch1 = False +switch2 = False +stop_down = 1 +stop_up = 1 +start_pos_up = 1 +def setM(m, speed): + global startTime + global motor + global auto + if speed != motor[m["name"]]["value"]: + motor[m["name"]]["value"] = speed + if auto["recording"]: + auto["motor"][m["name"]]["path"].append({ + "time": time.time() - startTime, + "value": speed + }) + if speed >= 0: + gpio.write(m["pins"][1], 0) + gpio.set_PWM_dutycycle(m["pins"][0], 255 * speed) + else: + gpio.write(m["pins"][0], 0) + gpio.set_PWM_dutycycle(m["pins"][1], 255 * -speed) + # setM(motor, speed) + +def resetMotors(): + for m in motor: + if "pins" in motor[m]: + gpio.write(motor[m]["pins"][0], 0) + gpio.write(motor[m]["pins"][1], 0) +resetMotors() + +def autonomous_setup(): + print("Autonomous mode has started!") + Robot.run(autonomous_play) #pylint: disable=undefined-variable + +def autonomous_main(): + pass + +async def autonomous_actions(): + #Tells robot to move forward: + Robot.run(autonomous_move()) #pylint: disable=undefined-variable + +async def autonomous_play(): + data = json.load(open(auto["file"], 'r')) + startTime = time.time() #pylint: disable=redefined-outer-name + mPath = data[len(data) - 1] + for m in mPath["motor"]: + mPath["motor"][m]["step"] = 0 + while time.time() - startTime < mPath["time"]: + for m in mPath["motor"]: + m = mPath["motor"][m] + currentTime = time.time() - startTime + if m["step"] < len(m["path"]) - 1 and currentTime > m["path"][m["step"] + 1]["time"]: + print('m["step"]: ' + str(m["step"])) + m["step"] += 1 + setM(m, m["path"][m["step"]]["value"]) + +#pylint: disable=redefined-outer-name +async def auto_action(motor, time): + setM(motor, motor["value"]) + await Actions.sleep(time) #pylint: disable=undefined-variable +async def autonomous_move(): + pass + +def teleop_setup(): + print("Tele-operated mode has started!") + +def teleop_main(): + #pylint: disable=too-many-statements + global stop_up + global stop_down + global start_pos_up + global auto + global startTime + global motor + global currentAnimation + # pylint: disable=undefined-variable + dup = Gamepad.get_value("dpad_up") + ddown = Gamepad.get_value("dpad_down") + dleft = Gamepad.get_value("dpad_left") + dright = Gamepad.get_value("dpad_right") + if Gamepad.get_value("button_start"): + if not auto["recording"]: + print("Recording") + auto["recording"] = True + startTime = time.time() + for m in motor: + if "name" in motor[m]: + auto["motor"][motor[m]["name"]] = motor[m] + auto["motor"][motor[m]["name"]]["path"] = [{ + "time": 0, + "value": 0 + }] + strip.setRgb([0.5, 0, 0]) + else: + print("Already recording") + if Gamepad.get_value("button_back"): + if auto["recording"]: + print("Logging Record") + auto["recording"] = False + data = json.load(open(auto["file"], 'r')) + data.append({ + "title": "Untitled", + "time": time.time() - startTime, + "motor": auto["motor"] + }) + # print(json.dumps(data, indent=2)) + json.dump(data, open(auto["file"], 'w'), indent=2) + for i in range(0, 7): + strip.setRgb([0, i % 2, 0]) + time.sleep(0.1) + else: + print("Not recording") + if Gamepad.get_value("button_b"): + #currentAnimation and \ + currentAnimation.cancel() + currentAnimation = strip.strobe(10) + if Gamepad.get_value("r_bumper"): + motor["config"]["drive"] = 1 + if Gamepad.get_value("l_bumper"): + motor["config"]["drive"] = 0.5 + if dup: + if dleft: + setM(motor["left"], 0) + setM(motor["right"], motor["config"]["drive"]) + elif dright: + setM(motor["left"], motor["config"]["drive"]) + setM(motor["right"], 0) + else: + setM(motor["left"], motor["config"]["drive"]) + setM(motor["right"], motor["config"]["drive"]) + elif ddown: + if dleft: + setM(motor["left"], 0) + setM(motor["right"], -motor["config"]["drive"]) + elif dright: + setM(motor["left"], -motor["config"]["drive"]) + setM(motor["right"], 0) + else: + setM(motor["left"], -motor["config"]["drive"]) + setM(motor["right"], -motor["config"]["drive"]) + elif dright: + setM(motor["right"], -motor["config"]["drive"]) + setM(motor["left"], motor["config"]["drive"]) + elif dleft: + setM(motor["right"], motor["config"]["drive"]) + setM(motor["left"], -motor["config"]["drive"]) + else: + setM(motor["right"], 0) + setM(motor["left"], 0) + # setM(motor["left"], (Gamepad.get_value("dpad_up") - Gamepad.get_value("dpad_down") + + # Gamepad.get_value("dpad_right") - Gamepad.get_value("dpad_left")) * motor["config"]["drive"]) + # setM(motor["right"], (Gamepad.get_value("dpad_up") - Gamepad.get_value("dpad_down") - + # Gamepad.get_value("dpad_right") + Gamepad.get_value("dpad_left")) * motor["config"]["drive"]) + if Gamepad.get_value("r_bumper"): + motor["config"]["drive"] = 1 + if Gamepad.get_value("l_bumper"): + motor["config"]["drive"] = 0.5 + if Gamepad.get_value("r_trigger") == 1: + stop_down = 1 # clear stop value + start_pos_up = 1 + if Robot.get_value(switchID, "switch0") and stop_up: + setM(motor["lift"], motor["config"]["lift"])# keep going UP + else: # hit top limit switch, stop and reverse motor + setM(motor["lift"], 0.0) # stop motor for now + elif Gamepad.get_value("l_trigger") == 1: + start_pos_up = 1 + stop_up = 1 # clear stop value + if Robot.get_value(switchID, "switch2") and stop_down: + setM(motor["lift"], -motor["config"]["lift"])# keeping going DOWN + else: # hit bottom limit switch, stop and reverse motor + setM(motor["lift"], 0.0) # stop motor for now + elif Gamepad.get_value("button_a") == 1: + if Robot.get_value(switchID, "switch1") and start_pos_up: + setM(motor["lift"], motor["config"]["lift"]) # go up + elif Robot.get_value(switchID, "switch1") == 0: + setM(motor["lift"], 0.0)# stop + start_pos_up = 0 + else: + start_pos_up = 1 + setM(motor["lift"], 0.0) + + + + +# Problem 1 +def tennis_balls2(num): + #pylint: disable=no-else-return + if num % 3 == 0: + return num / 3 + elif not num % 2 == 0: + return num * 4 + 2 + else: + return num + 1 +def tennis_ball(num): + for _ in range(0, 5): + num = tennis_balls2(num) + return num + +# Problem 2 +def remove_duplicates(num): + num2 = str(num) + array = "" + i = 0 + while i < len(num2): + #print("I"+str(i)) + if i < len(num2): + #print("I"+str(i)) + if num2[i] in array: + #print("in"+num2[i]) + #print(num2) + if i < len(num2): + num2 = num2[:i]+num2[i+1:] + else: + num2 = num2[:i-1] + #num2 = num2.split(num2[i]) + #print(num2) + i -= 1 + else: + #print("Array"+array) + array += num2[i] + i += 1 + return int(num2) + +# Problem 3 +def rotate(num): + num = str(num) + big = 0 + for i in num: + if int(i) > big: + big = int(i) + for i in range(big): + lastnum = num[-1:] + num = num[:-1] + num = lastnum + num + return int(num) + +#Problem 4 +def next_fib(num): + i = 0 + j = 1 + #pylint: disable=no-else-return + if num == 0: + return 0 + elif num == 1: + return 1 + while j < num: + temp = j + j = i + j + i = temp + return j + +# Problem 5 +def most_common(inputnum): + outs = [] + zeroArr = [] + for i in range(10): + outs.append(0) + zeroArr.append(0) + + for i in str(inputnum): + outs[int(i)] += 1 + +# Problem 6 +def get_coins(num): + q = (int)(num / 25) + num = num % 25 + n = (int)(num / 5) + num = num % 5 + return int(str(q)+str(n)+str(num))